1. ホーム
  2. javascript

[解決済み] XMLHttpRequestでPOSTデータを送信する

2022-03-15 02:32:38

質問

JavaScriptでXMLHttpRequestを使用してデータを送信したいのですが、どうすればよいですか?

HTMLで以下のようなフォームがあるとします。

<form name="inputform" action="somewhere" method="post">
  <input type="hidden" value="person" name="user">
  <input type="hidden" value="password" name="pwd">
  <input type="hidden" value="place" name="organization">
  <input type="hidden" value="key" name="requiredkey">
</form>

JavaScriptでXMLHttpRequestを使用して同等のものを書くにはどうしたらよいですか?

どのように解決するのですか?

以下のコードは、この方法を示しています。

var http = new XMLHttpRequest();
var url = 'get_data.php';
var params = 'orem=ipsum&name=binny';
http.open('POST', url, true);

//Send the proper header information along with the request
http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');

http.onreadystatechange = function() {//Call a function when the state changes.
    if(http.readyState == 4 && http.status == 200) {
        alert(http.responseText);
    }
}
http.send(params);

オブジェクトを作成した場合は、次のコードで params に変換することができます。

var params = new Object();
params.myparam1 = myval1;
params.myparam2 = myval2;

// Turn the data object into an array of URL-encoded key/value pairs.
let urlEncodedData = "", urlEncodedDataPairs = [], name;
for( name in params ) {
 urlEncodedDataPairs.push(encodeURIComponent(name)+'='+encodeURIComponent(params[name]));
}