Ajax 随机请求失败

Ajax Request Randomly Fails

奇怪的是我的ajax请求随机失败,我不知道为什么。

我只在 chrome 中进行了测试,当错误回调成功调用控制器时 returns 所以我认为问题不在服务器 side.but 我'我不确定。 chrome 中的 responseText 错误是空白的,所以我没有任何提示可以解决问题。

这是我的 Ajax 电话我做错了什么,我很无能?

$.ajax({
    type: "GET",
    url: url,
    data: { postalCode: postalCode },
    dataType: "json",
    success: function (response) {
        if (isPostBack != 'True') {
            switch (response["Code"]) {
                case "-1":
                    alert('msg 1.');
                    break;
                case "0":
                    alert('msg 2.');
                    break;
                case "1":
                    alert('msg 3.');
                    break;
                case "2":
                    alert('msg 4.');
                    break;
                default:
                    alert('unexpected value.');
            }
        }
    }
});

如果不是,最可能的原因是什么? 我正在为 Sitefinity 开发 Asp.NET MVC,我只在这个 ajax 请求中检测到这个问题。

更新:

我在浏览器中检测到请求正在被取消。 它成功到达服务器并在代码执行期间被取消。它没有在特定行中被取消,因为我注释了这些行以找出引起麻烦的行,但是无论代码行如何,它都被取消了。 然后我就开始考虑timeout,加了一个timeout。前 3 秒比 10 秒。但问题仍然存在。这是请求状态:

建议稍作修改:

$.getJSON(url, {"postalCode": postalCode})
 .success(function (response) {
    if (isPostBack != 'True') {
        switch (response.Code) {
        case "-1":
            alert('msg 1.');
            break;
        case "0":
            alert('msg 2.');
            break;
        case "1":
            alert('msg 3.');
            break;
        case "2":
            alert('msg 4.');
            break;
        default:
            alert('unexpected value.');
        }
    }
});

问题

我通过提交按钮发出了 ajax 请求,该按钮取消了一些请求。

我通过

解决
  • 隐藏提交按钮
  • 创建一个执行 ajax 调用的按钮 type=button
  • 成功回调后,我单击隐藏按钮提交表单值 $("#btnsubmit").click();

之后我仍然遇到问题,第一个请求总是被取消。 问题是超时。当我将超时值增加到 20 秒时,它不再被取消。但让我想到了另一个问题。

为什么第一个 ajax 请求需要 20 秒?

那将是另一场冒险..