【问题标题】:Debugging Jquery ajax function调试 Jquery ajax 函数
【发布时间】:2011-06-11 07:22:33
【问题描述】:

JS代码:

$.ajax({


        type: 'POST',
         url: 'http://localhost/MyServiceDir/Service.asmx/Foo',
         contentType: 'application/json; charset=utf-8',
         data: jsonData,
         success: function (msg) {
             alert("good");
         },
         error: function (xhr, status) {
              switch (status) {
                 case 404:
                     alert('File not found');
                     break;
                 case 500:
                     alert('Server error');
                     break;
                 case 0:
                     alert('Request aborted');
                     break;
                 default:
                     alert('Unknown error ' + status);
             } 
         }
     });

我收到“未知错误错误”。我该如何深究?我想知道错误实际上是什么。谢谢!

【问题讨论】:

    标签: jquery ajax error-handling


    【解决方案1】:

    “status”参数只包括失败的原因——超时、错误等...要获取状态码,您需要检查响应对象:xhr.status

    详情请见http://www.w3.org/TR/XMLHttpRequest/#response

    如果您收到“500 内部服务器错误”,那么 您将从 ajax 获得的所有信息。您必须检查您的应用程序或服务器日志。这可能是语法错误或库错误或其他类似的问题。

    【讨论】:

      【解决方案2】:

      检查xhr.status

      【讨论】:

      • 它确实给出了 500(服务器错误)...但是有没有办法获得更具体的细节?还是和我从 $ajax 获得的信息一样?
      • @gnomixa:您可以获得服务器发送的任何内容。看xhr.responseText
      【解决方案3】:

      在 onerror 事件中试试这个:

      alert(xhr.statusText)
      

      编辑:

      我认为您最好的选择是在 Firefox 上安装 FireBug 插件。这将允许您查看 ajax 调用(为此启用“控制台”选项卡)、响应和错误消息。希望您能够以这种方式获得所需的信息。这一直是我调试 ajax 调用的首选方法

      【讨论】:

      • 谢谢,但这也太笼统了 - “内部服务器错误”。我正在寻找更多信息,例如“传递的参数数量错误”......不确定是否可能。
      • 在上面编辑了我的答案...FireBug 可以帮助你
      • FireBug 安装有问题。它实际上不会安装在我的 FF 8 上
      猜你喜欢
      • 2011-10-17
      • 1970-01-01
      • 1970-01-01
      • 2012-03-14
      • 1970-01-01
      • 1970-01-01
      • 2021-10-21
      • 2016-09-24
      • 2017-03-31
      相关资源
      最近更新 更多