我正在处理一个需要返回JSON数据的Web服务。 I read that I should use application/json但不确定这可能导致什么问题?
例如,旧版浏览器是否支持它? (IE6 +,FF,Opera等)
或者公司防火墙/代理服务器后面的用户是否可能阻止mime类型的应用程序/ json?
如果有任何问题,您有什么问题可以遵循这个建议吗?
答案 0 :(得分:3)
让我们考虑一下IE。假设您有一个隐藏的iFrame,您可以使用它来请求文件下载。例如
<iframe src="getFile?id=123">
现在,服务器可能会发送JSON编码的错误消息,如
{
error: 'File 123 does not exist',
retryLater: false
}
如果该错误消息以application/json
形式发送,则会出现下载对话框,因为JSON文本被误认为是实际文件。
另一方面,MIME类型text/plain
将导致消息在iFrame中呈现,您可以将其提取出来,并使用JScript将其转换为花哨的弹出窗口。
(编辑)
答案 1 :(得分:1)
答案 2 :(得分:1)
我自己与IE8进行了长时间的斗争,我发现如果你将json加载到iframe作为text / plain,IE8会将它包装在一个标签中。如果您随后使用innerHTML获取内容并尝试将其解析为json,那么它将失败。
我最终不得不将内容发送为text / html,这似乎完全错误,但在IE中运行并且似乎没有让其他浏览器更加现代化的AJAX处理。