gpt4 book ai didi

jquery - 多部分表单 POST 导致 Firefox 提示 JSON 保存

转载 作者:行者123 更新时间:2023-12-03 22:52:39 25 4
gpt4 key购买 nike

我遇到了 IE 8 和 Firefox 6.0 中出现的问题,但 Chrome 17.0.9 中没有出现此问题。当我在下面发布 frmMain 时,我将其发送到一个测试页面,该页面仅返回一个带有 ContentType: application/json; charset=utf-8 的简单 JSON 字符串。 。问题是 IE 和 FF 会提示我保存从服务器返回的 JSON,而不会点击 jquery 代码中的 success 方法。但奇怪的是,如果我省略 <input name='File_1' type='file' />在发布的表单上,IE 和 FF 不会 提示我保存 JSON,并且我的 jquery 成功代码会触发。

因此,发布的内容似乎与浏览器对返回的有效负载的 react 有关(在 IE 和 FF 中)。通过 Fiddler,我已经验证在每种情况下返回的有效负载都是完全相同的。

有什么想法吗?

找到解决方案:请参阅下面我的回答。据我所知,“text/html”是执行 jquery/ajax/json 时返回的最佳跨浏览器内容类型。

代码

<script>
$(function () {
$('#btnSave').click(function () {
$('#frmMain').ajaxSubmit({
success: function (data, statusText, xhr, $form) {
alert('test success');
},
fail: function (data, statusText, xhr, $form) {
alert('test fail');
}
});
});
});
</script>
<body>
<form id='frmMain' action='/test' method='post'>
<!--Omit the file input below to make it work-->
file: <input name='File_1' type='file' /><br />

name: <input name='json' value='{"id":5}' /><br />

<input type='button' id='btnSave' value='Save' />
</form>
</body>

调用文件上传(导致失败): enter image description here

在没有文件上传的情况下调用(有效): enter image description here

IE 中的失败情况如下: enter image description here

FF 中的失败是什么样的: enter image description here

最佳答案

经过大量的尝试和错误后,我遇到了 this SO post其中 @ItsJason 建议将服务器的 ContentType 设置为“text/html”。这解决了问题,并且当我的 jQuery 代码调用我的回调方法时,它仍然将返回的有效负载识别为 JSON。所以吸取的教训是:为了在 ajax 回发期间将 JSON 返回到 jquery 时实现完全的跨浏览器兼容性,不要使用“application/json”,而使用“text/html”!!

关于jquery - 多部分表单 POST 导致 Firefox 提示 JSON 保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10044986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com