【问题标题】:IE bugs when writing JSON via an ASPX response通过 ASPX 响应编写 JSON 时的 IE 错误
【发布时间】:2010-06-17 23:50:26
【问题描述】:

我有一个用于编写 JSON 的 ASPX 页面。它在 Firefox 和 Chrome 中运行良好,但是当我尝试在 IE 8 中使用它时,它给了我一个“无法显示 XML 页面”错误,而不是允许 jQuery 加载响应写入的 JSON。

有什么想法吗?

我的代码如下所示:

protected override void OnLoad(EventArgs e) {
 Response.Clear();
 Response.ClearHeaders();
 Response.ContentType = "application/json";
 Response.Cache.SetCacheability(HttpCacheability.NoCache);
 Response.Write(string.Format("[ {{ \"Foo\": \"{0}\", \"bar\": \"{1}\" }} ]", "Foo Content", "Bar Content"));
 Response.End();
}

【问题讨论】:

  • 见下文:IE8 不喜欢将内容类型设置为“application/json”……愚蠢的 IE!

标签: javascript jquery asp.net json


【解决方案1】:

我最终通过不指定内容类型来“解决”问题。不知道为什么它不适用于上面提到的上下文类型。我已经将它用于其他事情没有问题。

【讨论】:

    【解决方案2】:

    你能发布你正在使用的 jQuery 吗?问题可能存在,因为 IE 和 Firefox 处理 Javascript 和 AJAX 请求的方式存在一些差异。

    从那个错误来看,听起来 IE 可能正在尝试将 JSON 作为网页加载,而不是发出 AJAX 请求。

    【讨论】:

      【解决方案3】:

      如果去掉 json 字符串中的 [ ] 会怎样?看起来没必要

      另外,您可以使用内置于 .net 中的 JSON 序列化程序,它肯定与 ie8 兼容。

      System.Web.Script.Serialization.JavaScriptSerializer

      http://blogs.msdn.com/b/rakkimk/archive/2009/01/30/asp-net-json-serialization-and-deserialization.aspx

      【讨论】:

        猜你喜欢
        • 2014-06-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多