XMLHttpRequest不发送

时间:2018-03-04 05:16:03

标签: javascript jquery ajax xmlhttprequest

这是扩展程序代码的一部分:

let url = "https://mywebsite.com/data.php";
function newRequest() {
    var client = new XMLHttpRequest();
    client.open("POST", url, true);
    client.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
    client.send("status=true");
    console.log(client.status);
}
newRequest();

其中还会在控制台中记录0。我一直在关注这里的文档:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest,尝试无数次调整,并且控制台中没有任何错误。不确定问题是什么。

我的服务器上的PHP肯定有效,因为我能够从本地html文件成功发布数据。

1 个答案:

答案 0 :(得分:0)

由于AJAX请求是异步的,您需要通过回调onreadystatechange来处理它。

代码应该是这样的

let url = "https://mywebsite.com/data.php";
function newRequest() {
    var client = new XMLHttpRequest();
    client.onreadystatechange = function() {
        console.log(this.readyState) // should be 4
        console.log(this.status) // should be 200 OK
        console.log(this.responseText) // response return from request
    };
    client.open("POST", url, true);
    client.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
    client.send("status=true");
    console.log(client.status);
}
newRequest();

希望这有帮助。

更多信息: https://www.w3schools.com/js/js_ajax_http_response.asp