【发布时间】:2011-07-20 07:42:42
【问题描述】:
开始使用 IE9 测试我的 jQuery 应用程序。看来我在这里可能会遇到一些麻烦。 我注意到,当我将 JSON 数据返回给 Javascript 方法时,我总是会收到这样的提示:“你想打开还是保存这个文件?”并为我提供了 3 个按钮:打开、保存和取消。当然,我的 javascript 会根据 JSON 对象中设置的值执行操作,但由于 IE9 不会将其传递给脚本,因此我无法从那里执行后续操作。
还有其他人面临这个问题吗?这是一张快照。
【问题讨论】:
-
什么是 HTTP 标头与来自服务器的 JSON 响应一起发回?
-
您是否在FF等不同浏览器中尝试过相同的页面?你在 IE 9 中启用了 javascript 吗?
-
您几乎可以肯定发送了错误的 MIME 内容类型,或者做了一些非常奇怪的事情,例如将 JSON 响应发送回 IFRAME 标记。复制 URL 将使我们能够轻松查看。 (启用与禁用 JS 根本没有区别)。
-
抱歉延迟回复。我将数据类型设置为“文本 json”。如果我只是将它设置为“json”,它认为它必须执行 jsonp 并通过回调将其返回。这在所有浏览器中都很常见。但是,我的代码适用于 IE8、FF4.0 和新的 Chrome(10?)。我在别处读到这可能与 ttp://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" rel="nofollow" target="_blank">w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 有关。我还为 添加了元标记
-
实际上,你是对的@EricLaw。在 Json 结果中设置内容类型后,它起作用了。我必须添加以下几行:result.ContentEncoding = System.Text.Encoding.UTF8; result.ContentType = "application/json; charset=UTF-8";