jQuery ajax调用 - 获取有意义的错误消息

时间:2012-07-25 17:14:07

标签: jquery asp.net ajax

我有一个jQuery ajax调用在IE中工作正常,但在Chrome和Firefox中不断出错。我在我的应用程序的其他地方有类似的ajax调用,它们在所有浏览器中都能正常工作,但由于某种原因,这个没有。

首先,有什么显而易见的我在这里会在IE以外的浏览器中破解,第二,同样重要的是,有没有办法从error: function (e) {}块中获得有意义的东西?< / p>

                $.ajax({
                type: "POST",
                url: "http://localhost:52350/FabRouting/Webservice/FinalizeFileStream.asmx/FinalizeFileStreamDoc",
                data: JSON.stringify({ DocID: docID, FileSize: file.size }),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    if (data.d.length == 0) {
                        //error
                        $("[id$=txtResult]").val("error 0");
                    }
                    else {
                        $("[id$=txtResult]").val(data.d[0].Result);
                    }
                },
                error: function (e) {
                    //error
                    $("[id$=txtResult]").val("error");
                }
            });

2 个答案:

答案 0 :(得分:3)

错误功能有三个参数

error: function(jqXHR, textStatus, errorThrown) { //code here }

而你只使用一个。 errorThrown应该有一些更有用的信息。

EDIT2 - 抓住我的答​​案,因为钥匙不是字符串而破坏 - 应该没问题。但是,如果您使用帖子,为什么要对数据进行字符串化?您应该能够直接传递json数组。

答案 1 :(得分:0)

最终它不是我的代码或浏览器(好吧),只是我的错误。

我一直在研究和阅读某人遇到麻烦的跨域ajax调用错误。我没有尝试这样做,但是我确实有两个Visual Studio Web服务器出于某种原因而旋转。我看了,我正在用一个硬编码网址(http:// localhost:52350 / FabRouting / Webservice .......)暂时调用webservice,我正在使用新网址(http:// localhost) :59986 / FabRouting / Tes .....)访问该页面。

由于某些原因,这在IE中运行良好,但是当我在Chrome或Firefox中尝试它时,它无法正常工作。我改变了访问页面的位置,并从ajax调用中获得了良好的返回值。

我仍然想知道如何获得更有意义的错误,@ dtryan让我分道扬..如果有人能帮我解决这个问题,我会将他们标记为答案,而不是这个答案。

编辑: 后来我发现我实际上能够按照我之前尝试的方式和@dtryan建议的方式获取错误消息。问题在于,由于某种原因,因为它试图跨域而引发错误,但我无法捕获该错误。

我已经失去了内存错误等等,而且我能够捕获并看到它们。我认为这只是一场完美的风暴,导致错误不可见。如果有人有任何方法来捕获这些错误,那么最好知道。