jQuery ajax不能在IE上远程工作

jQuery ajax不能在IE上远程工作,jquery,ajax,parse-error,Jquery,Ajax,Parse Error,我在客户机上有一些代码,它使用$.ajax()调用ashx处理程序,并期望从服务器获得json数据。当我在本地Web服务器上运行应用程序时,在FF(即6、7、8)上一切都正常。但是,当我将应用程序部署到远程测试服务器时,IEs停止工作($.ajax返回parsererror),而FF继续按预期工作 我的第一个想法是,我的json对象必须有一个IEs不喜欢的试验逗号,但这不是问题所在,因为没有试验逗号。然后,我尝试将各种内容类型从app/json更改为tex/plain,仍然是相同的错误 我发现奇

我在客户机上有一些代码,它使用$.ajax()调用ashx处理程序,并期望从服务器获得json数据。当我在本地Web服务器上运行应用程序时,在FF(即6、7、8)上一切都正常。但是,当我将应用程序部署到远程测试服务器时,IEs停止工作($.ajax返回parsererror),而FF继续按预期工作

我的第一个想法是,我的json对象必须有一个IEs不喜欢的试验逗号,但这不是问题所在,因为没有试验逗号。然后,我尝试将各种内容类型从app/json更改为tex/plain,仍然是相同的错误

我发现奇怪的是,如果我启动fiddler,IEs将远程工作,否则,我将得到parsererror

以前有人经历过类似的事情吗?谢谢

$.ajax({
        type: "GET",
        url: "handlers/GetAsyncResults.ashx",
        contentType: "application/json; charset=utf-8",
        data: {'from': dateFrom, 'to': dateTo, 'accountId' : aId, 'page': currentPage, 'sortField' : sortField, 'sortDirection' : sortDirection},
        dataType: "json",
        success: function(data) { GetAsyncResultsEnd(data); },
        error: function(x, y, z) { GetAsyncResultsErrorHandler(x, y, z); }
    });

编辑:添加了代码片段。

唯一一个在解析错误之前给了我一个解析错误的东西是无效的JSON。您说过您检查了尾随空格,但尝试通过-,运行json。这对我很有效。尽管提琴手的帮助很有意思。

尝试使用

contentType: 'application/json',
已经分类了。谢谢

在服务器端,在调用context.Response.Write(“我们的json数据”)之后,我们再调用context.Response.Flush()和context.Response.Close()。删除.Flush()和.Close()之后,一切又开始工作了。但我仍然无法解释为什么它适用于firefox而不是IE,也无法解释fiddler是如何神奇地让它适用于IE的


谢谢。

您是否尝试过简单地删除数据类型:“json”


我也有同样的问题,去掉它就解决了。删除它可以让jQuery“智能地将responseXML或responseText传递给成功回调”。

在我的ashx.cs方法中,我必须注释掉Flush(),才能使其工作

在此之前,我的json格式良好,一切正常,但是JavaScript(JQuery.ajax POST调用)只会返回任何内容,FireBug不会报告错误,控制台没有报告错误,什么都没有。这一切都在本地工作(在VisualStudio中),但当一切都在服务器上时就不行了

//code from the ashx.cs file...
//...after populating the response, resp:

JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
String json = jsonSerializer.Serialize(resp);

r.Write(json);
//r.Flush();  /////commented out!  It returns to the .js file correctly!
....

你能插入一段客户端代码吗?试着添加?r=9028374(一些随机字符串)来确认它没有缓存。ashx处理程序和调用它的文档在同一台服务器上吗?它肯定没有缓存。所有内容都位于同一服务器/域上。谢谢。刚刚试过Json Lint,根据网站,我的Json是有效的。谢谢。有两件事-你能发布一个JSON响应的例子吗?我还没有使用JQuery的json类型。我总是把文本通过Crockfords JSON.parse运行。在使用该方法时,看看问题是否仍然存在是很有趣的,但是JQuery可能正在使用他的JSON解析器。