XMLHTTPRequest
で変数をサーバーに送信するにはどうすればよいですか? など、GET
リクエストのURLの末尾に追加するだけですか?XMLHTTPRequestで変数を渡すにはどうすればいいですか
だから、多かれ少なかれ:
XMLHttpRequest("GET", "blahblah.psp?variable1=?" + var1 + "?variable2=" + var2, true)
XMLHTTPRequest
で変数をサーバーに送信するにはどうすればよいですか? など、GET
リクエストのURLの末尾に追加するだけですか?XMLHTTPRequestで変数を渡すにはどうすればいいですか
だから、多かれ少なかれ:
XMLHttpRequest("GET", "blahblah.psp?variable1=?" + var1 + "?variable2=" + var2, true)
あなたはイエスの方法だろうGETを使用してサーバーに変数を渡したい場合。それらを適切にエスケープ(urlencode)することを忘れないでください!
変数を表示したくない場合は、POSTを使用することもできます。
完全なサンプルは次のようになります。
var url = "bla.php";
var params = "somevariable=somevalue&anothervariable=anothervalue";
var http = new XMLHttpRequest();
http.open("GET", url+"?"+params, true);
http.onreadystatechange = function()
{
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
http.send(null);
はこれをテストするには、あなたが取得するかを確認することができvar_dump $_GET
(PHPを使用して)。
これはかなりいいです – rpivovar
GETリクエストで変数を渡すための正しい形式は
?variable1=value1&variable2=value2&variable3=value3...
^---notice &---^
である。しかし、本質的に、あなたは正しい考えを持っています。
よく見つかった:) – TJHeuvel
はい、これはGET要求で行う正しい方法です。
しかし、複数のクエリ文字列パラメータは、&
などで分離する必要があることを忘れないでください。 ?変数1 = VALUE1 &変数2 = value2の
後は、正しい方法である:
xmlhttp.open("GET","getuser.php?fname="+abc ,true);
が手動でクエリ文字列の書式を設定することは、単純な状況に罰金です。しかし、多くのパラメータがあるときは面倒になることがあります。
クエリの書式設定を処理する簡単なユーティリティ関数を記述することができます。
function formatParams(params){
return "?" + Object
.keys(params)
.map(function(key){
return key+"="+encodeURIComponent(params[key])
})
.join("&")
}
そして、この方法でリクエストを作成します。
var endpoint = "https://api.example.com/endpoint"
var params = {
a: 1,
b: 2,
c: 3
}
var url = endpoint + formatParams(params)
//=> "https://api.example.com/endpoint?a=1&b=2&c=3"
URLを操作するために利用できる多くのユーティリティ関数があります。あなたのプロジェクトにJQueryがあるなら、http://api.jquery.com/jquery.param/を試してみてください。
これは上記の関数例と似ていますが、ネストされたオブジェクトと配列を再帰的に直列化して処理します。
このようにすることはできますが、疑問符の代わりにアンパサンドでキー/値のペアを区切る必要があります。したがって: '' blahblah.php?variable1 = "+ var1 +"&variable2 = "+ var2' – nnnnnn
また、' var1'と 'var2'には予約文字が含まれていないので注意してください。 'encodeURIComponent()'でエスケープしたいかもしれません。 – nullability