2

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

首先,我在这里做的事情是否明显会破坏 IE 以外的浏览器,其次,同样重要的是,有没有办法从error: function (e) {}块中获得有意义的东西?

                $.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");
                }
            });
4

2 回答 2

3

误差函数有三个参数

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

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

EDIT2 - 因为键不是字符串,所以我的答案是因为键不是字符串而中断 - 这应该没问题。但是,如果您使用帖子,为什么要对数据进行字符串化?您应该能够直接传递 json 数组。

于 2012-07-25T17:17:30.983 回答
0

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

我一直在研究和阅读有人在跨域 ajax 调用出现错误时遇到的问题。我不想这样做,但是出于某种原因,我确实启动了两个 Visual Studio Web 服务器。我看了看,我正在使用硬编码的 url (http://localhost:52350/FabRouting/Webservice.......) 调用 web 服务,我正在使用新的 url (http://localhost :59986/FabRouting/Tes.....) 访问该页面。

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

我仍然想知道如何得到一个更有意义的错误,@dtryan 让我在其中的一部分。如果有人可以帮助我弄清楚这一点,我会将他们的答案标记为答案,而不是这个答案。

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

从那以后,我就遇到了内存不足错误等问题,而那些我能够捕捉并看到的都很好。我认为这只是一场完美的风暴,导致错误不可见。如果有人有任何方法来捕获这些错误,那么很高兴知道。

于 2012-07-25T18:05:43.950 回答