这段代码过去常常工作得很好.
鉴于$ .ajax没有收到任何文件数据,从更新到iOS 11.3开始,这个$ .ajax在iOS浏览器上测试时,提交一个简单的纯文本表格似乎非常缓慢地工作20秒.
但是如果文件元素传递文件数据,$ .ajax在两种情况下都能正常工作,并且和预期的一样快.
HTML ---
<form enctype="multipart/form-data" id="chatform" method="post">
<input type="file" name="pic" id="pic" class="hidden" />
<textarea name="chattextarea" id="chattextarea" rows="3" cols="10"></textarea>
<input type="button" value="Send" onclick="sendMessage();" />
</form>
JavaScript ---
function sendMessage() {
var formData = new FormData($("#chatform")[0]);
$.ajax({
url: 'send.php',
type: 'POST',
data: formData,
async: true,
cache: false,
contentType: false,
processData: false,
success: function (returndata) {
/* some success message */
}
});
}
Run Code Online (Sandbox Code Playgroud)
这是iOS 11.3的错误吗?
-----编辑-----
确实,这不仅是iOS 11.3的bug,也是Safari 11.1的bug.到目前为止,我测试了这些环境并复制了这个bug:
我写了一个简单的解决方法,请检查我的答案,如果你有一个更清洁的解决方案让我知道.
我有完全一样的问题!我有一个带有多个表单的网络应用程序,如果用户不选择包含文件,这些表单将不再工作。自 beta 1 以来一直运行 iOS 11.3 beta,并希望每个新的 beta 版本都能解决此问题。令人恼火的是,该问题在公开发行版中仍然存在。希望当这个 \xe2\x80\x9dbug\xe2\x80\x9d 影响更多的人时,现在会有更多关于如何解决这个问题的信息。
\n| 归档时间: |
|
| 查看次数: |
4034 次 |
| 最近记录: |