Javascript API给出错误(net::ERR\u EMPTY\u响应)
API在浏览器中运行良好,就像GooglePostman从数据库返回数据一样,但当我试图从react JS应用程序访问它时,它会给我一个空响应的错误 下面是API代码Javascript API给出错误(net::ERR\u EMPTY\u响应),javascript,node.js,reactjs,api,Javascript,Node.js,Reactjs,Api,API在浏览器中运行良好,就像GooglePostman从数据库返回数据一样,但当我试图从react JS应用程序访问它时,它会给我一个空响应的错误 下面是API代码 //Server.js if (req.url === "/all" && req.method === "GET") { getAllUsers(req, res); 这是model.js文件 //Model.js function findAllUsers()
//Server.js
if (req.url === "/all" && req.method === "GET") {
getAllUsers(req, res);
这是model.js文件
//Model.js
function findAllUsers() {
return new Promise((resolve, reject) => {
con
.connect()
.then(() => {
req
.query(`select * from users`)
.then((records) => {
console.log(records);
resolve(records);
con.close();
})
.catch((err) => {
console.log(err);
con.close();
});
})
.catch((err) => {
console.log(err);
con.close();
});
});
}
这在react js文件中
async componentDidMount() {
const response = await fetch("http://localhost:5000/all", {
method: "GET",
headers: {
"content-Type": "application/json",
cors: "no-cors",
}
});
const data = await response.json();
console.log("Data : ", data);
}
(当我使用json文件中的数据但不使用数据库数据时,它工作正常)我不确定这里发生了什么,但为什么要发送
cors:“无cors”
尝试在服务器上支持CORS,然后安装。并将其添加到服务器中,看看会发生什么
const cors=require('cors');
应用程序使用(cors());
而且,你不需要这个:
res.writeHead(400,{“内容类型”:“application/json”});
res.end(JSON.stringify({message:“未找到用户”}));
你可以:
res.json({message:“未找到用户”});
事实上,这可能就是问题的原因。只需将ACAO(Access Control Allow Origin,访问控制允许源站)头放在发送请求的源站地址,问题就解决了
res.writeHead(400, { "Content-Type": "application/json",
"Access-Control-Allow-Origin": "http://localhost:1234",
});
你是对的Ziad Alzarka这是由于cors,但它是一个无框架节点js API,因此npm cors包不能在其中使用,它只是通过添加一个允许cors的额外头来修复
res.writeHead(400, { "Content-Type": "application/json",
"Access-Control-Allow-Origin": "http://localhost:1234",
});