ajax 跨域 jsonp對返回的json格式報錯"Uncaught SyntaxError: Unexpected token :"

以前的代碼前端

$.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跨域的問題。跨域

相關文章
相關標籤/搜索