Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.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 API给出错误(net::ERR\u EMPTY\u响应)_Javascript_Node.js_Reactjs_Api - Fatal编程技术网

Javascript API给出错误(net::ERR\u EMPTY\u响应)

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

API在浏览器中运行良好,就像GooglePostman从数据库返回数据一样,但当我试图从react JS应用程序访问它时,它会给我一个空响应的错误 下面是API代码

//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",
 });