ajax post 适用于 chrome、firefox 但不适用于 internet explorer

ajax post works with chrome, firefox but not internet explorer

我有以下 ajax 代码:

$.ajax({
    type: "POST",
    async: false,
    url: "Plan.aspx/SaveData", 
    data: JSON.stringify(DTO), 
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    cache: false,
    traditional: true,
    success: function (response) {
        if (response.d == "YES") {
            check = response.responseText;
        }
    },
    error: function (response) {
        check = "Error: " + response.responseText;
        return false;
    }
});

此代码适用于 Firefox 和 chrome,但不适用于 Internet Explorer。两端均未出现错误。奇怪的是代码在 Visual Studio IDE (VS 2013) 中有效,但在 IIS 7.5 上部署时却无效。我到处寻找没有运气的答案。

这里有人有什么想法吗?

更新: 编辑以添加成功代码,该代码从不执行,因为 ajax 调用从不在 IE 上执行,但在 Firefox 和 Chrome!

上执行

好的,明白了。我更改了代码,用一个函数调用包装它并添加了一个 try catch 以便于调试。我的代码:

    function postdata(DTO) {
        var success = false;
        try {
            $.ajax({
                type: "POST",
                async: false,
                url: "Plan.aspx/SaveData",
                data: JSON.stringify(DTO), 
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                cache: false,
                traditional: true,
                success: function (response) {
                    success = true;
                },
                error: function (response) {
                    alert("Ajax post failed, the error is: " + response.responseText)//+ " Test = " + test);

                    success = false;
                }
            });
        }
        catch (Error) {
            success = false;
        }
        return success;
    }

catch 捕获错误 JSON is undefined,这里我认为它是浏览器的本机问题,不是 IE,我不得不添加一个名为 json3.js 的 javascript 文件,你可以在这里找到它:

https://bestiejs.github.io/json3/

现在它适用于所有三种浏览器...现在如果我能让 Edge 工作...那是另一回事...不知道为什么我以前不使用 try catch,本来可以保存我有时间。