2010-12-02 7 views
0

JavaScriptを使用した練習をしていますが、まだ2時間もかかりました。私は、このHTMLフォームを持っている:FormDataとXMLHTTPrequestを使用したフォームのネーミングと投稿

<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オブジェクトに名前を付ける方法を理解できません。

私は(それはと遊ぶのが私に提供されるWebアプリケーションを含む、より大きな運動の一部です)あなたのうちのコンテキストのスクリプトを与えているが、私はとにかく私を助けることができると思います:)

私は」参考までにthisを使っています。

答えて

0

new FormData()form submitとは異なってコード化されています。

デフォルトenctype="application/x-www-form-urlencoded"です。

new FormData()を使用すると、enctype="multipart/form-data"を使用していることを意味します。