通过ASPX响应编写JSON时帮助IE错误

时间:2010-06-17 23:50:26

标签: asp.net jquery json

我有一个用于编写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();
    }

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

从那个错误中,听起来好像IE可能试图将JSON加载为网页,而不是发出AJAX请求。

答案 2 :(得分:0)

如果你摆脱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