【问题标题】:ajax jquery an empty error callback on success server operationajax jquery 成功服务器操作的空错误回调
【发布时间】:2013-12-10 08:40:11
【问题描述】:

我打了一个 ajax 调用:

$.ajax({
    url: 'Login.aspx/AuthenticateRegularUser',
    type: 'POST',
    contentType: 'application/json; charset=utf-8',
    async: true,
    dataType: "json",
    data: '{ "emailAddress": "' + emailAddress + '","password": "' + password + '","verificationCode": "' + verificationCode + '" }',
    success: function(Result) {
        if (Result != "") {
            var ClientResponse = JSON.parse(Result.d);
            if (ClientResponse.Success) {
        //DO SUCCESS
            }

            else {
        //DO FAIL
            }
        }
    },
    error: function(xhr, textStatus, errorThrown) {
    //DO ERROR
    }
});

大多数时候一切正常,我收到成功回调。 但是我的一个客户有一个问题,有时操作在服务器上成功完成,但我收到一个错误回调,错误为空。 jqXHR 为空,textStatus = "" 和 null errorThrown。

知道为什么吗?

【问题讨论】:

    标签: ajax json jquery callback


    【解决方案1】:

    可能是不同类型的浏览器?可能是与 IE 相关的问题。也许要求客户改用 firefox。

    可能是 IE 对 javascript 的解释与 firefox 不同,我之前在工作中遇到过类似的问题。微软总是试图为 javascript、html、css 制定自己的标准。还要查数据:'{ "emailAddress": "' + emailAddress + 还有好像引号太多了。

    谢谢

    【讨论】:

    • 可能,但您知道这是为什么或意味着什么吗?
    • 可能是 IE 对 javascript 的解释与 firefox 不同,请参阅我的更新答案。
    • 大部分时间它都是这样工作的(比如 10 次调用中有 8 次调用)但只有几次失败是有道理的?
    • 告诉你的客户试试firefox最新版本,它是你问题的答案。
    • 我不能 :) 我们支持所有浏览器类型。
    【解决方案2】:

    试试看,需要去掉data前面的',语法如下所示

     data: { "emailAddress": emailAddress, "password": password, "verificationCode": verificationCode },
    

    而不是

      data: '{ "emailAddress": "' + emailAddress + '","password": "' + password + '","verificationCode": "' + verificationCode + '" }',
    

    参考:http://api.jquery.com/jQuery.ajax/

    【讨论】:

    • 谢谢,我会试试的,但你能告诉我为什么你认为这会是个问题吗?
    猜你喜欢
    • 1970-01-01
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 2013-07-01
    相关资源
    最近更新 更多