我收到了一个有关JSON的XML错误消息。
我收到了一个有关JSON的XML错误消息。
更新2:
我没有提到在Chromium中我没有遇到下面的错误,但是在IE8中我遇到了这个错误。
更新1:
响应头:
HTTP/1.1 200 OK
日期:Fri, 20 May 2011 15:40:23 GMT
服务器:Microsoft-IIS/6.0
X-Powered-By:ASP.NET
X-AspNet-Version:2.0.50727
缓存控制:private
内容类型:application/json; charset=utf-8
内容长度:85
原问题:
我有一个服务器端页面生成json数据,在使用jquery访问时工作得非常好。然而,当我导航到实际生成json数据的网页时,我在浏览器中收到以下客户端错误消息:
无法显示XML页
无法使用样式表查看XML输入。请纠正错误,然后单击“刷新”按钮,或稍后再试。
--------------------------------------------------------------------------------
文档的顶层无效。正在处理资源'http://companyname.com/json/data.aspx?id=7
[{"key":7,"value":"Default"}]
为什么会发生这种情况,我该如何停止出现错误消息?
我在使用JSON时遇到了一个XML错误消息,通过阅读以下内容,我整理出了问题出现的原因和解决方法。
这个问题的原因是,当在IE浏览器中使用application/json作为响应的内容类型时,会出现XML错误消息。这是由于IE浏览器对JSON的支持受到限制,导致无法正确处理返回的JSON数据。
解决方法是将响应的内容类型设置为text/plain。在代码中,可以通过设置context.Response.ContentType="text/plain"来解决这个问题。此外,还需要在使用$.ajax()方法发送请求时,将dataType设置为'json',以确保数据以JSON格式传递给成功函数。
通过这种设置,即使IE浏览器对JSON的支持有限,也能够成功处理返回的JSON数据,并避免出现XML错误消息。
同样的解决方法也适用于使用jquery-file-upload插件时遇到的问题。在这种情况下,插件会自动设置contentType为multipart,但是如果需要从处理程序返回JSON数据,则需要将contentType更改为text/plain,以解决IE浏览器中出现的错误。
总结起来,通过将响应的内容类型设置为text/plain,并在请求中将dataType设置为'json',可以解决在IE浏览器中使用JSON时出现的XML错误消息。这个解决方法已经在许多人的实践中得到验证,并被证明是有效的。
我收到了一个XML错误消息的JSON问题。出现这个错误的原因是,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,但在“无效的XML”上失败了。