簡體   English   中英

如何使用Javascript XMLHttpRequest將JSON數據對象發送到服務器?

[英]How to send a JSON data object to the server using Javascript XMLHttpRequest?

我將XMLHttp Request發送到PHP服務器。 我無法使用我使用Javascript發送的數據來填充$_POST$_REQUEST對象:

var r = new XMLHttpRequest;

r.open("POST", "http://url.com", true);

r.send({ myname : 'someName'});

我無法在$_POST數組中訪問myname屬性,盡管我在php://input看到了。 我應該如何在$_POST使用它? 我試圖發送這樣的數據:

r.send(JSON.stringify({ myname : 'someName'}));

但這都不起作用。

嘗試這個

var xmlhttp = new XMLHttpRequest();   
xmlhttp.open("POST", "http://url.com", true);
xmlhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xmlhttp.send(JSON.stringify({ myname : "someName"}));

這應該工作:

r.open('POST','http://url.com',true);
r.setRequestHeader('Content-type','application/json; charset=utf-8');
r.setRequestHeader("Content-length", string.length);
r.setRequestHeader("Connection", "close");   
r.send({ myname : 'someName'});

PHP將不會為application/json請求填充$_POST

(您實際上並沒有發送適當的JSON請求,因為您忘記在XHR對象上設置Content-Type標頭,但是該數據在任何其他格式下都將無效,因此最終結果是相同的。)

只會對application/x-www-form-urlencodedmultipart/form-data數據執行此操作。

如果要填充$_POST請不要使用JSON作為數據格式。 (您可以使用以URL編碼格式嵌入的JSON,但這只能為您提供$_POST['json'] JSON文本的字符串表示形式,而不能直接訪問以JSON編碼的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM