独角兽企业重金招聘Python工程师标准>>>
之前Jquery的跨域调用一直没有解决,不知道为什么老是执行error里的语句,今天花了点时间研究了一下,终于把问题解决了。
关键的地方是返回的字符串,返回的字符串必须包含jsonp的回调函数名称,而且要为json数据。
javascript代码
$.ajax({url: http, //请求的urldataType : "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"})