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跨域的问题。跨域

相关文章
相关标签/搜索