[英]How To Send FormData object?
我的代碼:
<form id="company">
<input type="text" name="name" />
<input type="tel" name="tel" />
<input type="button" id="send" name="send" value="send" />
</form>
<script>
##get Form id an create form data##
var testForm = document.getElementById('send');
testForm.onclick = function(event) {
var formData = new FormData(document.getElementById('company'));
##this is Ajax Method##
$.ajax({
url : './json/company.php',
method : 'POST',
data : formData,
timeout : 10,
dataType :'json',
success: function(data)
{
alert("Success");
}
});
}
</script>
錯誤:TypeError:FormData.constructor的參數1不是對象
嘗試這個
data : JSON.stringify(formData)
由於表單沒有輸入類型文件,因此應使用serialize函數
$(testForm).click(function(event) {
event.preventDefault();//don't forget to prevent the default click event from redirecting you from the page
$.ajax({
url : './json/company.php',
method : 'POST',
data : $('#company').serialize(),
timeout : 10,
dataType :'json',
success: function(data)
{
alert("Success");
}
});
});
你錯過了關鍵的選項,jQuery正試圖處理formData,但它不能。
您必須添加processData: false
選項,並且您應該避免發送contentType
var testForm = document.getElementById('send');
testForm.onclick = function(event) {
var formData = new FormData(document.getElementById('company'));
$.ajax({
url: './json/company.php',
method: 'POST',
data: formData,
processData: false,
contentType: false,
timeout: 10,
dataType: 'json',
success: function(data) {
alert("Success");
}
});
}
要使用帶有jquery的formdata,您必須設置正確的選項
var testForm = document.getElementById('send');
testForm.onclick = function(event) {
var formData = new FormData(document.getElementById('company'));
$.ajax({
url : './json/company.php',
type: "POST",
data : formData,
processData: false,
contentType: false,
success: function(data)
{
alert("Success");
},
error: function(jqXHR, textStatus, errorThrown){
//if fails
}
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.