我有一个使用表单 ID 创建的 FormData 对象。此表单有多个输入值。然后我使用 XMLHttpRequest() 发送 FormData。
但是在请求中(我已经使用 Google Chrome 的开发者工具进行了调试)我可以在表单数据中看到,当我查看“解析”版本时,它只发送第一个输入值。但是,当我查看 FormData 的源时,所有输入值都在那里。
我的问题
为什么在查看解析后的版本时FormData
我只能看到一个值,而查看源代码时我可以看到所有值?
这可能是服务器端其他问题的原因,因为它没有正确检索任何参数。
编辑- 一些代码
形式
<form id='properties'>
<input type='text' name='name' value='previous'/>
<input type='text' name='occupation' value='unknown'/>
<input type='hidden' name='ID' value='23'/>
</form>
Javascript XMLHttpRequest 方法
function sendRequest() {
var request = getHttpRequest();
request.onreadystatechange=function() {
if (request.readyState==4 && request.status == 200) {
console.log("Received Response: "+request.response);
}
}
request.open("POST","resort-service.php",true);
request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
var form = new FormData(document.getElementById("properties"))
request.send(form);
}
Google Chrome 开发者工具- 用于调试XMLHttpRequest
它的发送和响应。
解析数据:
------WebKitFormBoundary94v9BnBjfFvkLOzw
Content-Disposition: form-data; name:"name"
previous
------WebKitFormBoundary94v9BnBjfFvkLOzw
Content-Disposition: form-data; name
源数据:
------WebKitFormBoundary94v9BnBjfFvkLOzw
Content-Disposition: form-data; name="name"
previous
------WebKitFormBoundary94v9BnBjfFvkLOzw
Content-Disposition: form-data; name="occupation"
unknown
------WebKitFormBoundary94v9BnBjfFvkLOzw
Content-Disposition: form-data; name="ID"
23