Axios获取请求获取cors问题

fafcakar  于 2022-11-23  发布在  iOS
关注(0)|答案(2)|浏览(241)

我正在尝试从某个端点获取一些数据。
我不能在这里共享端点的url,但与cors的问题。
当我用 Postman 的时候一切都很好。
但当通过axios从我的react应用程序发出get请求时,我会收到以下错误:

Refused to set unsafe header "origin"
Access to XMLHttpRequest at 'http://some.com/products.json' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

我的要求是:

const baseUrl = "http://some.com/products.json"
const axiosConfig = {
  withCredentials: true,
  headers: {
    Accept: "application/json",
    "Content-Type": "application/json",
  }
};

      axios
      .get(baseUrl, axiosConfig)
      .then(response => {
        console.log(response);
      })
      .catch(error => {
        console.log(error)
      });

我试过很多方法,但我不能用这个。

dxxyhpgq

dxxyhpgq1#

您需要在服务器中启用CORS,如果您有权访问您的服务器,请将以下行添加到您的服务器。

'Access-Control-Allow-Origin', '*'

用于nodejs服务器

app.use(function(req, res, next) {
  res.setHeader('Access-Control-Allow-Origin', '*');
}

对于本地开发,您可以通过禁用chrome安全来绕过cors,使用--disable-web-security标志打开chrome,关闭Chrome的所有示例

# Open chrome and disable security
open -a Google\ Chrome --args --disable-web-security --user-data-dir="/Users/junius/chrome/"

# Open Microsoft Edge
open -a Microsoft\ Edge --args --disable-web-security --user-data-dir="/Users/junius/chrome/"
k4emjkb1

k4emjkb12#

请求的资源上不存在“Access-Control-Allow-Origin”标头
正如您的错误所述,如果您像这样指定标头,问题可能会得到解决。

headers: {
      'Access-Control-Allow-Origin': '*',
    }

github上也报告了类似的问题。
在GET请求#853 https://github.com/axios/axios/issues/853上获取“跨源请求被阻止”

相关问题