jsonp仅支持get请求ajax
$.ajax({ type: "GET", async: false, url: "http://localhost:8888/crbcHQimis/specialplanmanage/d7194c5a32ca43fc94684579ab42d3d6", dataType: "jsonp", jsonp: "callback", jsonpCallback:"successCallback", success: function (result) { alert(result); }, error: function (e) { alert(e) } });
以上请求成功,可是不会进入到success回调函数里,而是进入error中。json
最后修改后台方法,解决:跨域
@RequestMapping(value = "/{id}", method = RequestMethod.GET) public String getInfoById(@PathVariable String id) { return "successCallback('"+id+"')"; }
不过根据浏览器的保护规则,跨域的时候咱们建立的sessionId是不会被浏览器保存下来的,这样,当咱们在进行跨域访问的时候,咱们的sessionId就不会被保存下来,也就是说,每一次的请求,服务器就会觉得是一个新的人,而不是同一我的,为了解决这样的办法,须要在ajax请求时增长 xhrFields:{withCredentials:true},以下:浏览器
$.ajax({ type: "GET", async: false, url: "http://localhost:8888/crbcHQimis/specialplanmanage/d7194c5a32ca43fc94684579ab42d3d6", dataType: "jsonp", jsonp: "callback", jsonpCallback:"successCallback", xhrFields:{withCredentials:true}, success: function (result) { alert(result); }, error: function (e) { alert(e) } });