Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript XMLHttp请求post未命中URL,也未显示任何错误_Javascript_Json_Ajax_Url_Xmlhttprequest - Fatal编程技术网

Javascript XMLHttp请求post未命中URL,也未显示任何错误

Javascript XMLHttp请求post未命中URL,也未显示任何错误,javascript,json,ajax,url,xmlhttprequest,Javascript,Json,Ajax,Url,Xmlhttprequest,我已经编写了一个XMLHttp请求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/js

我已经编写了一个XMLHttp请求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不打

我是从这本书中引用的


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

您是否正在运行API的同一服务器上运行上述HTML片段?如果没有,您将遇到CORS问题,以下是一些解决方案:

  • 在服务器API中允许跨源请求。在JavaSpring引导应用程序中,您可以添加@CrossOrigin(maxAge=3600)以允许来自任何来源的请求
如果CORS不是问题,请检查请求是否命中服务器。您用于后端API的服务器和框架是什么?启用调试日志以查看发生的情况

否则,请发布浏览器控制台和网络选项卡的屏幕截图(显示API调用以及请求头等详细信息的屏幕截图)。确保这些功能未被禁用

您的代码片段非常好。我在我的系统中运行了相同的程序(稍加修改),它运行得很好。注意,我已经在SpringREST控制器类中启用了交叉原点


Ajax交互
var http=new XMLHttpRequest();
变量url=”http://localhost:8080/guide/channel";
变量参数='{“channelNumber”:110,“name”:“Star Sprorts HD1”,“price”:20,“channelGroup”:“Star”}';
http.open(“POST”,url,true);
setRequestHeader(“内容类型”,“应用程序/json;字符集=utf-8”);
http.onreadystatechange=函数(){
如果(http.readyState==4&&http.status==200){
警报(http.status);
}
}
http.send(params);
尝试使用以下选项:

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);

不点击URL是什么意思?在browser developer tools网络页面中,您是否看到该请求?(顺便提一下,我怀疑CORS问题)是的,在网络页面请求中进行调试,但没有显示任何响应。这个url实际上是JAVA中的一个操作,在调试时,它应该命中带有参数的url,但它没有按预期工作。如果服务器收到请求但没有响应,则问题可能出在服务器上。不,我当时在postman上测试了相同的url命中,但不是通过此代码。无法找出问题所在?请看,postman不需要CORS响应头才能工作-我怀疑是CORS-但由于某种原因,您显然无法在浏览器开发人员控制台中看到这一点(哪个浏览器?)我已经添加了我的网络日志的屏幕截图,因为您可以看到请求正在进行,但其状态只是挂起,没有响应。@CrossOrigin(maxAge=3600)为我工作,Thnx为建议。