如何使用XMLHTTPRequest
將變量發送到服務器?我只是將它們添加到GET
請求的URL的末尾,如?variable1=?variable2=
等?如何使用XMLHTTPRequest傳遞變量
所以或多或少:
XMLHttpRequest("GET", "blahblah.psp?variable1=?" + var1 + "?variable2=" + var2, true)
如何使用XMLHTTPRequest
將變量發送到服務器?我只是將它們添加到GET
請求的URL的末尾,如?variable1=?variable2=
等?如何使用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);
爲了測試這一點,(使用PHP),你可以var_dump $_GET
看到您檢索什麼。
這是相當不錯的 – rpivovar
傳遞變量GET請求的正確格式爲
?variable1=value1&variable2=value2&variable3=value3...
^---notice &---^
但從本質上講,你有正確的想法。
斑點:) – TJHeuvel
是的,這是使用GET請求執行此操作的正確方法。
但是,請記住多個查詢字符串參數應與&
如分開。 ?變量1 =值&變量2 =數值
以下是正確的做法:
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