之前Jquery的跨域调用一直没有解决,不知道为什么老是执行error里的语句,今天花了点时间研究了一下,终于把问题解决了。
关键的地方是返回的字符串,返回的字符串必须包含jsonp的回调函数名称,而且要为json数据。
javascript代码
$.ajax({
url: http, //请求的url
dataType : "jsonp",
//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)
jsonp: "callback",
//自定义的jsonp回调函数名称"jsonpCallback",返回的json也必须有这个函数名称
jsonpCallback:"jsonpCallback",
success : function(json){
if(json.flag=="successfully")
{ console.log("request successfully");}
},
error: function(xhr,status,error)
{ console.log(xhr); }
});
java代码
return "jsonpCallback"+"({\"flag\":\"successfuly\"})";//返回必须是json字符串
浏览器返回的结果如下
jsonpCallback({"flag":"successfuly"})