JQuery Ajax跨域呼叫和非跨域呼叫的問題
阿新 • • 發佈:2019-01-08
現在的網際網路技術發展的越來越快,我們在開發過程中遇到的問題也越來越多。比如當我們需要進行跨域訪問資料的時候該如何進行開發?本篇博文就記述如何使用Ajax進行跨域訪問呼叫資料。
1、非跨域呼叫
我們用到的最多是這樣的方式,也就是非跨域的進行訪問,只是簡單的在我們的網頁中進行Ajax使用即可。如下面程式碼:
/** * 非跨域請求方式 */ function feikuayu() { $.ajax({ type: "post", url: platformUrl + "/security/modifyPwd", data: $('#updatepwdform').serialize(), dataType: "json", success: function (data) { $("#updatepwd_btn").click(); $.toast("修改成功,系統即將退出,請重新登入", 1500); }, error: function () { $.toast("網路異常", 1500); } }); }
2、跨域請求
在我們進行跨域請求時需要改變ajax固定引數:
dataType:"jsonp",
crossDomain:true,
jsonpCallback:"jsonpCallbackFun",
jsonp:"callback",且後臺返回的資料格式必須是:jsonpCallbackFun(json資料); 這裡的jsonpCallbackFun是你自定義的回撥函式方法名。
程式碼如下:
/** * 跨域請求方式 */ function kuayu() { $.ajax({ type: "post", url: platformUrl + "/security/modifyPwd", data: params, dataType: "jsonp", crossDomain: true, jsonpCallback: "jsonpCallbackFun", jsonp: "callback", success: function (data) { if (data.result == 1) { $("#updatepwd_btn").click(); $.toast("修改成功,系統即將退出,請重新登入", 1500); setTimeout("logout()", 1600); } else if (data.result == 2) { $.toast(data.msg, 1500); } else { $.toast("修改失敗", 1500); } }, error: function () { $.toast("網路異常", 1500); } }); }
這樣即可跨域請求了!