我的目录中有test.html
,test.js
和test.php
文件。我试图发送一些数据到我的后端,这应该由test.php
来处理。我使用PHP的内置webserver命令php -S 0.0.0.0:8080 -t test-server/
来运行我的服务器。
这里有一个简单的演示,每当我点击“提交”,它应该发送数据到我的php服务器.
window.onload = () => {
submit = document.getElementById('submit');
submit.addEventListener('click', () => {
const xhttp = new XMLHttpRequest();
xhttp.onload = function() {
window.location.replace("test.php");
}
xhttp.open("test.php", "POST", true);
xhttp.setRequestHeader('Content-type', 'application/json; charset=utf-8');
var data = {'name':'foo'};
xhttp.send(JSON.stringify(data));
});
}
下面是我的PHP:
<?php
echo "foo";
var_dump($_POST);
?>
然而,数据没有被发送,xhttp.onload
也不工作,错误Invalid request (Malformed HTTP request)
出现在我的服务器上,错误net::ERR_EMPTY_RESPONSE
出现在chrome的开发者工具中。
我哪里做错了?
1条答案
按热度按时间3bygqnnd1#
xhttp.open使用此签名:
你刚刚在调用中反转了方法和url。
更多信息:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/open