2010-02-05 40 views
18

我有下面的代码位这我只是在萤火JQuery如何找出ajax错误是什么?

$.ajax({ 
    type:"POST", 
    url:"http://mpdomain/WebService.asmx/Operation", 
    data: "{'parameter1': '44906'}", 
    contentType: "application/json;charset=utf-8", 
    dataType: "json", 
    success: function(data) { alert("succsess") }, 
    error: function(e, ts, et) { alert(ts) } 
}) 

运行在理论上它应该工作的尝试。但是,错误处理程序被触发,并且ts被简单地设置为“错误”。我如何获得有关错误的更多细节?

+2

打开Firebug或IE8调试器,并在你的'alert(ts)'上放置一个断点。检查你的'e,ts,et'参数来找出你想要的信息存储在哪里。 – 2010-02-05 19:16:59

回答

30
$.ajax({ 
    type:"POST", 
    url:"http://mpdomain/WebService.asmx/Operation", 
    data: "{'parameter1': '44906'}", 
    contentType: "application/json;charset=utf-8", 
    dataType: "json", 
    success: function(data) { alert("succsess") }, 
    error: function(ts) { alert(ts.responseText) } 
}) 
+5

嗯 - 它是空白的。有任何想法吗? – 2010-02-05 19:15:32

+1

嗯...尝试responseStatus – ozsenegal 2010-02-05 19:17:48

+3

为什么警报,他们对任何人都没有好处。使用调试器;语句或console.dir对象。除了提醒之外的任何事 – redsquare 2010-02-05 19:32:34

4

jQuery给你的错误信息不是很具描述性。它可以是“超时”,“错误”,“未修改”或“解析错误”。 http://api.jquery.com/jQuery.ajax/所以你可以得出结论是,它不是超时,没有修改或解析错误,你正在得到。

确保在Firebug看到设置为正确的地址和正确的数据被设定的要求。您也可以查看响应,如果您也有权访问服务器代码,则快速和肮脏的方法只是回应服务器端发生的事情并使用Firebug查看响应。

而且我不知道这是否是一个问题,但尝试将数据设置为{参数1:44906}(基本上去掉引号,这样你就传递一个对象,而不是一个字符串)。