2013-02-23 138 views
0

我試圖做一個Ajax請求在直接JavaScript(jQuery不提供給我)與一些JSON參數。 的JavaScript:服務器沒有看到在JavaScript發送的JSON ajax請求

var params = {'ajax': true, 'albumid': albumid, 'sequencenum': sequencenum}; 
var xhr = new XMLHttpRequest(); 
xhr.onreadystatechange=function() 
{ 
    if (xhr.readyState==4 && xhr.status==200) 
    { 
     console.log(xhr.responseText); 
    } 
} 
xhr.open("GET","viewpicture.php",true); 
xhr.setRequestHeader("Content-Type", "application/json") 
console.log("sending request"); 
xhr.send(JSON.stringify(params)); 

在viewpicture.php,一個的var_dump($ _ GET)產生一個空數組。我究竟做錯了什麼?

回答

0

如果您想發送請求正文,您應該使用POST請求,但是如果您需要使用get請求,則應該將該數據作爲url中的鍵值對發送。例如xhr.open("GET","viewpicture.php?data=" + encodeURIComponent(JSON.stringify(params)),true);然後通過$_GET['data']檢索。

1

總之,當你提出GET請求時,.send預計有0個參數(或者是null)。 通過GET發送數據的唯一方法是將其附加到URL本身。

機智:
如果你在表單數據發送,在POST,期待將是send將包含表單編碼的數據(JSON數據等JSON),以及URL只想成爲服務器上的接入點。

A GET請求只是從該接入點獲取數據(包括查詢字符串)。
看看我要去哪裏?所以如果你想讓它在GET中工作,你需要將你的JSON設置爲查詢參數的一個屬性(或者把它變成查詢參數/值)。

相關問題