javascript 对PHP服务器的 AJAX POST请求:控制台和net上的无效请求(格式错误的HTTP请求)::Chrome开发工具上的ERR_EMPTY_RESPONSE

hivapdat  于 2023-01-11  发布在  Java
关注(0)|答案(1)|浏览(144)

我的目录中有test.htmltest.jstest.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的开发者工具中。
我哪里做错了?

3bygqnnd

3bygqnnd1#

xhttp.open使用此签名:

open(method, url, async, user, password)

你刚刚在调用中反转了方法和url。
更多信息:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/open

相关问题