$.ajax({ url:"http://a.com/ver?jsoncallback=?",dataType:"jsonp",jsonpCallback:"person",async:false,success:function(data){ alert(data.info); } });
上面是Ajax的一些示例代码,其中有几个地方需要说明
async:false是取消异步请求,改变同步,因为这个地方如果改成异步的话,有时候请求还没返回,后面就执行了,导致方法不一致。dataType:jsonp 这个是跨域的类型
jsoncallback=?在url后面加上这个,用来请求返回时调用(必须要加上的),?号的话,jquery会自动加上随机的字符串
response.setContentType("application/json;charset=utf-8"); String jsoncallback = request.getParameter("jsoncallback"); PrintWriter out = null; out = response.getWriter(); out.println(jsoncallback + "({\"info\":\"success\"})");
上面的JAVA代码中,有一个地方是很重要的,就是返回的时候,必须是用获取到的jsoncallback带着json数据返回。。
而且返回的数据格式是json,格式是{\"info\":\"success\"},里面的\"一定也要加上,不然在前端接收不了