1

フォームの ID を使用して作成した FormData オブジェクトがあります。このフォームには複数の入力値があります。次に、XMLHttpRequest() を使用して FormData を送信します。

ただし、リクエスト (Google Chrome の開発者ツールを使用してデバッグしたもの) では、「解析された」バージョンを表示すると、最初の入力値のみが送信されていることがフォーム データでわかります。ただし、 FormData のソースを表示すると、すべての入力値が表示されます。

私の質問

の解析済みバージョンを表示するFormDataと、1 つの値しか表示されないのに、ソースを表示するとすべての値が表示されるのはなぜですか?

これは、パラメーターを正しく取得しないため、サーバー側で他の問題を引き起こす可能性があります。

編集- いくつかのコード

<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
4

1 に答える 1

0

インターネットでさらに探し回った後、解決策を見つけました。

エラーはこの行でした。

request.setRequestHeader("Content-type","application/x-www-form-urlencoded");

この行を削除すると、問題なく転送されました。

于 2013-09-03T16:22:26.790 に答える