springmvc是通過預留參數支持JSONP的支持
import org.springframework.http.converter.json.MappingJacksonValue; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class DemoController { @RequestMapping("/test_jsonp") public MappingJacksonValue test_jsonp(String callback) { Object response = null; //TODO ... MappingJacksonValue mappingJacksonValue = new MappingJacksonValue(response); mappingJacksonValue.setJsonpFunction(callback); return mappingJacksonValue; } }
1、如果客戶端傳值callback,那么就會以jsonp的形式返回給客戶端
2、如果客戶端沒有傳值callback,那么默認以json的形式返回給客戶端
3、callback的參數名稱也可以更改,一般不需要。
4、jsonp內部原理還是利用jackson的支持,把數據渲染成js字符串形式返回給客戶端