POSTメソッドを使用してXMLHttpRequestを記述しようとしています。過去にGETメソッドを使用してXMLHttpRequestを使用できましたが、POSTに苦労しています。
これが私のコードです:
var xmlhttp = null;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
var url = "http://www.mysite.com/script.php";
var params = "var=1";
xmlhttp.open("POST", url, true);
xmlhttp.send(params);
それは基本的にPHPスクリプトを呼び出し、それがデータベースにいくつかの情報を追加します。
POSTリクエストを実行するときに必要なContent-type
ヘッダーに明示的に設定するのを忘れていました。
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
また、パラメータを適切にエンコードするために encodeURIComponent
を使用することを忘れないでください。例:
var params = "var=" + encodeURIComponent("1");
(この特定の例では必須ではありませんが、+
などの特殊文字を使用する場合、パラメーターテキストをエンコードしないと、状況がひどく悪くなります)。
Update–次のように、%20
のすべてのインスタンスを+
に置き換える必要もあります
var params = params.replace(/%20/g, '+');