如何为axios GET请求添加适当的头?

时间:2018-01-22 19:38:38

标签: reactjs http axios

我的错误消息:“无法加载http://localhost:8080/db:请求的资源上没有”Access-Control-Allow-Origin“标头。因此不允许原点”http://localhost:3000“访问。

我的前端服务器在localhost:3000上运行

componentDidMount() {
  axios
    .get('http://localhost:8080/db')
    .then(response => console.log(response))
    .catch(err => console.log(err));
}

这是我的快递文件:

app.use((req, res, next) => {
  res.setHeader('Access-Control-Allow-Origin', '*');
  res.setHeader(
    'Access-Control-Allow-Headers',
    'Origin, X-Requested-With, Content-Type, Accept'
  );
  res.setHeader(
    'Access-Control-Allow-Methods',
    'POST, GET, PATCH, DELETE, OPTIONS'
  );
  next();
});

3 个答案:

答案 0 :(得分:0)

这看起来像你的服务器根本没有运行,或者没有运行。

你必须告诉快递在哪里听一行如下:

app.listen(8080, () => console.log('Example app listening on port 8080!'))

然后运行它(假设您的服务器代码位于名为app.js的文件中)

node app.js

答案 1 :(得分:0)

我能够通过安装此软件包并启用所有cors来解决此问题。

https://github.com/expressjs/cors

答案 2 :(得分:0)

  

如果您在Chrome中运行它。请使用以下扩展名   让它发挥作用。

enable cross-origin.

您也可以从后端代码启用跨源代码。