Javascript Ajax响应未通过node.js
我的Ajax请求没有收到正确的响应!它总是以响应状态“0”进入readyState“4” 客户端代码:Javascript Ajax响应未通过node.js,javascript,node.js,ajax,express,Javascript,Node.js,Ajax,Express,我的Ajax请求没有收到正确的响应!它总是以响应状态“0”进入readyState“4” 客户端代码: var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function(){ if(xhttp.readyState == 4 && xhttp.status == 200){ document.getElementById
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function(){
if(xhttp.readyState == 4 && xhttp.status == 200){
document.getElementById("lastNameLabel").innerHTML = "response recieved!";
const responseJSON = JSON.parse(xhttp.responseText);
if(responseJSON.emailTaken == "false"){
window.location = server+"/client/home.html";
}
}
};
xhttp.open("POST", server+"/signUp", true);
xhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhttp.send("email="+email);
服务器代码(Node.js+Express):
我知道我的服务器正在处理请求,因为我看到了url调用,但是响应从未到达html客户端!!。我被卡住了 您必须让您的NodeJS服务器回复一条HTTP响应消息,其中包括状态代码和原因短语,如
res.status(200).send({ status: 'ok' });
将@jaromanda-x作为答案,您需要在服务器中启用CORS
这是如何做到的:
var cors = require('cors');
app.use(cors());
有关详细信息,请参阅。这是一个跨源请求吗?请检查浏览器开发人员工具控制台,查看您是否在CORS方面有任何错误。这意味着什么?这意味着检查浏览器开发人员工具控制台是否有错误我不知道存在错误!!我看到:MLHttpRequest无法加载。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“null”。解决了这个问题!!谢谢好了,这是一个跨源资源共享错误-您需要将CORS处理添加到您要向其发送请求的服务器-有一个CORS库for express,您可以简单地插入代码,这样您就不必过多地考虑它。这与问题无关,
200
已经是默认状态代码,因此没有也需要添加它。
var cors = require('cors');
app.use(cors());