簡體   English   中英

如何正確接收AJAX發送的數據

[英]How to correctly receive data sent by AJAX

我有這個XMLHttpRequest庫:

 function easyHTTP() { this.http = new XMLHttpRequest(); } // Make an HTTP POST Request easyHTTP.prototype.post = function(url, data, callback) { this.http.open('POST', url, true); this.http.setRequestHeader('Content-type', 'application/json'); let self = this; this.http.onload = function () { callback(null, self.http.responseText); } this.http.send(JSON.stringify(data)); } 

在我的HTML上,我有一個帶有id="btn"的按鈕標記,單擊此按鈕時,我想將一些數據發送到一個PHP文件(名為“ ajax.php”),因此,我有:

 document.addEventListener("DOMContentLoaded", function() { const http = new easyHTTP(); // Create Data const data = { title: 'Custom Posts', body: 'This is a custom post1' }; document.getElementById('btn').addEventListener('click', function(e){ // Create Post http.post('ajax.php', data, function(err, response){ if(err) { alert(err); } else { alert(response); } }); e.preventDefault(); }); }); 

在我的“ ajax.php”中,我有:

<?php 

if($_SERVER['REQUEST_METHOD'] == "POST") {

  echo var_dump(json_encode($_POST));

}

?>

但是我從return中得到的只是一個空數組,它不應該作為響應發送給我嗎? (用“標題”和“正文”構造數據)? 我做錯了什么?

似乎XMLHttpRequest不會將正文發送到$ _POST而是發送到'php:// input'。

所以代替:

json_encode($_POST)

您可以使用:

file_get_contents('php://input')

請注意,結果仍為JSON格式。

暫無
暫無

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

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