jquery端代碼
$.ajax({
async:false,
url: 'http://www.**.com/**/jsonp', // 跨域URL
dataType: 'jsonp',
timeout: 5000,
success: function (json) {
alert(JSON.stringify(json));
}
});
java web端代碼
@ResponseBody
@RequestMapping(value = "/jsonp",method=RequestMethod.GET)
public String jsonp(HttpServletRequest request) {
String callback =request.getParameter("callback");
return callback+"([{name:'jsonp',age:'30'},{name:'jack',age:'90'}])";
}
執行結果
[{"name":"jsonp","age":"30"},{"name":"jack","age":"90"}]
以上是不指定任何參數,jquery自動傳遞一個callback參數到後臺,成功後,回調success函數。
$.ajax({
async:false,
url: 'http://www.**.com/**/jsonp', // 跨域URL
dataType: 'jsonp',
jsonp:'jsoncallback',//自定義參數名稱
timeout: 5000,
success: function (json) {
alert(JSON.stringify(json));
}
});
java web端代碼
@ResponseBody
@RequestMapping(value = "/jsonp",method=RequestMethod.GET)
public String jsonp(HttpServletRequest request) {
String jsoncallback=request.getParameter("jsoncallback");//指定接受參數爲jsoncallback
return jsoncallback+"([{name:'jsonp',age:'30'},{name:'jack',age:'90'}])";
}
以上是自定義參數名稱,後臺指定接受通過jsonp冒號傳遞的函數名稱。
$.ajax({
async:false,
url: 'http://www.**.com/**/jsonp', // 跨域URL
dataType: 'jsonp',
jsonp:'jsoncallback',//自定義參數名稱
jsonpCallback:"success_jsonpCallback",//定義回調函數名稱
timeout: 5000,
success: function (json) {
alert(JSON.stringify(json));
}
});
var success_jsonpCallback=function(json){
alert(JSON.stringify(json)+"********");
}
執行結果
[{"name":"jsonp","age":"30"},{"name":"jack","age":"90"}]********
[{"name":"jsonp","age":"30"},{"name":"jack","age":"90"}]
以上是自定義回調函數名稱,執行成功後,先執行jsonpCallback定義的回調函數,後執行success函數。