使用FormData和XMLHTTPrequest命名和发布表单

时间:2010-12-02 16:21:52

标签: javascript xmlhttprequest

我正在使用JavaScript进行练习,而且我在几个小时后仍然卡住了。我有这个HTML表单:

<form method=POST name=transferform
  action="/transfer.php">
<input name=user type=text value="">
<input name=credits type=text value="">
<input type=submit name=submission value="Send">
</form>

我想使用XMLHTTPrequest和FormData调用发布此表单的JavaScript(用一些值填充)。我走到这一步,对我来说这似乎是正确的,但它似乎不起作用:

var formdata = new FormData();
formdata.append('user', 'bob');
formdata.append('credits', '1');
var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://someurl.com/transfer.php');  
xhr.send(formdata); 

使用此脚本不起作用,它不会发布表单。但是,在HTML页面中手动按“发送”将发布表单,一切都很顺利。我怀疑这是行不通的,因为我没有在我的请求中设置表单的名称(HTML表单名为“transferform”)。我无法弄清楚如何为请求命名FormData-object。

我正在给你一个out of context的脚本(这是一个涉及提供给我的web应用程序的大型练习的一部分),但我希望你能帮助我:)

我一直在使用this作为参考。

1 个答案:

答案 0 :(得分:0)

new FormData()的编码方式与form submit不同。

默认enctype="application/x-www-form-urlencoded"

使用new FormData()表示您使用的是enctype="multipart/form-data"