以前的代码前端
$.ajax({ url: requestUrl+"/mkx/share/querypraise/"+key+"/"+userID+"/1", type: "GET", dataType:"jsonp", jsonp:"callback", success:function(data){ alert(data) })
返回的数据是{"code":29} 可是报错 **Uncaught SyntaxError: Unexpected token :" **,success里面的alert也不会执行
须要在ajax加入一个 jsonpCallback:"success_jsonpCallback",修改后以下ajax
$.ajax({ url: requestUrl+"/mkx/share/querypraise/"+key+"/"+userID+"/1", type: "GET", dataType:"jsonp", jsonp:"callback", 这里加入 jsonpCallback jsonpCallback:"success_jsonpCallback", success:function(data){ alert(data) })
此时发送出去的url 就是json
http://asdad.com/mkx/v3/share/querypraise/BJNz2eqQvqIn/100001/1?callback=success_jsonpCallback&_=1476852971578
到此尚未改完,须要在后端修改 由于咱们的后端使用 resultfull 因此对于callback很差接收后端
String result1=""; JSONObject result = new JSONObject(); //自定义callback和前端ajax的jsonpCallback值要对应 String callback="success_jsonpCallback"; //result里面为查询出来须要返回的json数据 result1=callback+"("+result+")"; return result1;
此时ajax返回的数据是success_jsonpCallback({"code":29})
前端就能拿到数据了,到此解决了ajax跨域的问题。跨域