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函数。