1. 程式人生 > >JQuery Ajax跨域呼叫和非跨域呼叫的問題

JQuery Ajax跨域呼叫和非跨域呼叫的問題

        現在的網際網路技術發展的越來越快,我們在開發過程中遇到的問題也越來越多。比如當我們需要進行跨域訪問資料的時候該如何進行開發?本篇博文就記述如何使用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);
            }
        });
    }

        這樣即可跨域請求了!