XMLHttp Request帖子未命中URL,也未显示任何错误

时间:2019-07-16 05:50:18

标签: javascript json ajax url xmlhttprequest

screenshot of network log我已经写了一个XMLHttp request POST方法来代替表单post。

在调试过程中,它工作正常且未显示任何错误,但也未找到该URL。

var http = new XMLHttpRequest();
var url = "https://localhost:8083/unique/test";
var params = finalJSON;
http.open("POST", url, true);
http.setRequestHeader("Content-type", "application/json; charset=utf-8");
http.onreadystatechange = function() {
    if(http.readyState == 4 && http.status == 200) {
        alert(http.responseText);
    }
}
http.send(params);

finalJSON是我的JSON,其中包含如下数据:

{"ID": "1234", "AMOUNT": "10000", "TXNTYPE": "abc", "CURRENCY_CODE": "123"}

找不到问题,请提供帮助,以防止URL未被点击?

我从这里参考了 XMLHttps post request Reference

我还附上了网络日志的屏幕快照,请求正在进行中,但没有响应。

2 个答案:

答案 0 :(得分:0)

尝试使用以下内容:

var url = "https://localhost:8083/unique/test";
var params = finalJSON;
http.open("POST", url, true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.send(params);

答案 1 :(得分:-1)

您是否从运行API的同一服务器上运行上述HTML代码段?如果没有,那么您将遇到CORS问题,这是一些解决方案:

如果不是CORS,请检查请求是否正在服务器上。您将哪个服务器和框架用于后端API?启用调试日志以查看发生了什么。

否则,能否请您发布浏览器控制台和“网络”选项卡的屏幕快照(显示API调用的屏幕快照,其中包含请求标头等详细信息)。确保未禁用它们。

您的代码段绝对正确。我在系统中运行了相同的代码(稍作修改),并且工作正常。请注意,我在spring rest控制器类中启用了跨域。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Ajax Interaction</title>
</head>

<body>
    <script type="text/javascript">
        var http = new XMLHttpRequest();
        var url = "http://localhost:8080/guide/channel";
        var params = '{"channelNumber": 110,"name": "Star Sprorts HD1","price": 20,"channelGroup": "Star"}';
        http.open("POST", url, true);
        http.setRequestHeader("Content-type", "application/json; charset=utf-8");
        http.onreadystatechange = function () {
            if (http.readyState == 4 && http.status == 200) {
                alert(http.status);
            }
        }
        http.send(params);

    </script>
</body>

</html>

请参考以下完整代码示例: