2010-11-25 19 views
15

POSTメソッドを使用してXMLHttpRequestを作成しようとしています。私は過去にGETメソッドを使用してXMLHttpRequestを使用することができましたが、POSTで苦労しています。ここでAJAX 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スクリプトを呼び出します。

+0

どうしたらいいですか? –

+0

エラーはなく、Chrome Inspectorによればコードは問題ありません。 – diggersworld

答えて

-6

わかりのように、+%20のすべてのインスタンスを置き換える必要があります。

サンドボックスセキュリティに関連しているかもしれませんが、完全なURLアドレスを持つのではなく、ファイルへの相対パスを使用しています。

ご協力いただきありがとうございます。

49

明示的にContent-typeヘッダーに設定するのを忘れました。これはPOST要求を行うときに必要です。

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

また、例えば、適切にパラメータをエンコードするためにencodeURIComponentを使用することを忘れないでください:

var params = "var=" + encodeURIComponent("1"); 

が(この特定の例では、それは必要ありませんが、+ものなどの特殊文字を使用している場合は、移動しますパラメータテキストをエンコードしなければひどく間違っています)。

更新 - あなたはまた、私はそれを並べ替えることができた

var params = params.replace(/%20/g, '+'); 
+0

コンテンツタイプとエンコードを追加しようとしましたが、処理スクリプトはまだ呼び出されていません。 – diggersworld

+0

@diggers:処理スクリプトはどのように見えますか?それを含めるように質問を変更できますか? –

+2

は 'Content-Type'ではなく' Content-Type'ヘッダでなければなりません。 –