以前的代碼前端
$.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跨域的問題。跨域