【发布时间】:2019-02-17 06:07:17
【问题描述】:
我有这个 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));
}
?>
但是我从返回中得到的只是一个空数组,它不应该作为我发送的数据的响应吗? (带有“标题”和“正文”的常量数据)?我做错了什么?
【问题讨论】:
-
一方面,您应该删除
var_dump(),只使用echo。 -
如果我执行“echo json_encode($_POST);”我仍然得到一个空数组(“[]”)作为响应
标签: javascript php ajax xmlhttprequest