【问题标题】:I'm getting an XML error messages for JSON?我收到 JSON 的 XML 错误消息?
【发布时间】:2011-08-29 13:16:19
【问题描述】:

更新 2:

我没有提到我在 Chromium 中没有收到以下错误,但我在 IE8 中确实收到了。

更新 1:

Response Headers:
HTTP/1.1 200 OK
Date: Fri, 20 May 2011 15:40:23 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Cache-Control: private
Content-Type: application/json; charset=utf-8
Content-Length: 85

原始问题:

我有一个生成 json 数据的服务器端页面,在 jquery 访问时效果很好。但是,当我导航到实际生成 json 数据的网页时,我在浏览器中收到以下客户端错误消息:

The XML page cannot be displayed 
Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later. 


--------------------------------------------------------------------------------

Invalid at the top level of the document. Error processing resource 'http://companyname.com/json/data.aspx?id=7

[{"key":7,"value":"Default"}]

为什么会发生这种情况?如何阻止错误消息出现?

【问题讨论】:

  • 网页发送哪些响应头?
  • 这是官方的内容类型,所以我假设您的浏览器无法显示 JSON。我觉得没问题,你的用户为什么要在浏览器中打开 JSON?

标签: jquery asp.net xml vb.net json


【解决方案1】:

同样的问题,context.Response.ContentType="text/plain"; 让我很开心...

【讨论】:

  • 这解决了我的问题。回答“stackoverflow.com/a/6070509/24975”没有。
  • 语义正确的类型仍然是 application/json ,如果它在 Chrome 中工作,它可能是一个 IE 限制会产生错误。请参阅上面在 IE 的 JSON 支持中引用的 this post
  • text/plain 为我工作。请务必在对$.ajax() 的调用中设置dataType: 'json'。根据 jQuery 文档:“如果未指定 (dataType),jQuery 将尝试根据响应的 MIME 类型推断它”。我的意思是如果你使用text/plain,jQuery 只会将一个字符串传递给你的成功函数。
  • 这也解决了我的问题。我正在使用 jquery-file-upload,因此为我设置了 contentType(多部分),我需要从处理程序返回 JSON。它在 Chrome 但不能在 IE8 中工作,给了我Invalid at the top level of the document 错误。切换到text/plain 解决了它,即使它不是“正确的”。
【解决方案2】:

这里有两个提示: 1) 在 Firefox 中安装 HttpFox 插件,它可以让您准确查看正在发送/接收的内容 2) 在 Firefox 中安装 JSON View,让您可以在浏览器中查看 JSON 响应。

【讨论】:

  • 请参阅原始问题中的更新 1。我没有 firefox,但根据 chromium,更新 1 中显示的响应标头就是它返回的内容。
【解决方案3】:

出现错误,因为 JSON 数据可能以 text/xml 类型提供,并且您的浏览器尝试将输出解释为 XML。如果您将其作为 application/json 提供,那可能不会发生。你为什么要直接访问该页面?

【讨论】:

  • 我将 json 数据以Response.ContentType = "application/json" 的形式发回。
  • 请查看上面的更新 1 从响应标头中获得证明。
  • 查看有关 IE8 和 JSON 数据的相关问题:stackoverflow.com/questions/2483771/…
  • 似乎 IE 将 application/json 指向 XML 查看器,该查看器本身尝试使用 XML 样式表转换 XML - 并且在“无效 XML”上惨遭失败。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-19
  • 1970-01-01
相关资源
最近更新 更多