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
我还附上了网络日志的屏幕快照,请求正在进行中,但没有响应。
答案 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>
请参考以下完整代码示例: