我正在使用xmlHTTPRequest(以及$ .ajax)发送表单(包含一些文本输入和多文件输入)而没有刷新页面。 我正在使用FormData在PC(Chrome)上成功发送表单。 当我在IPAD(IOS)中运行页面时,该页面不起作用。 在尝试知道错误在哪里之后,似乎其中不支持FormData。 就我而言,还有其他选择吗?
var formDataH = new FormData($('#FeedbackForm')[0]);
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4) {
if (this.status == 200){
alert(xhttp.responseText);
$('#FeedbackBar').html('<span class="text-success">Sent...</span>');
$('#FeedbackForm')[0].reset();
}else{
$('#FeedbackBar').html('<span class="text-danger">Error Sending, try again...</span>');
}
setTimeout(function() {$('#FeedbackBar').html('');}, 2000);
}
};
xhttp.open("POST", "conf/feedbackpost.php", true);
xhttp.send(formDataH);
答案 0 :(得分:0)
我能够像这样在iOS 10.3.3(iPhone 5C)上的Safari中使用FormData:
var formData = new FormData(document.getElementById('form1'));
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(event) {
if (xhr.readyState == 4) {
if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) {
// do something
} else {
// do something
}
// clean
xhr = null;
}
}
xhr.open('post', 'http://server/upload.php', true);
xhr.send(formData);
<form id="form1" action="upload.php" method="POST" enctype="multipart/form-data">
<label id="bChoose" for="file">Choose</label>
<input id="file" type="file" name="file" />
</form>