ajax跨域-jsonp

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)
   }
});
相關文章
相關標籤/搜索