Reactjs 如何修复发送axios get请求时出现的CORS策略错误?

Reactjs 如何修复发送axios get请求时出现的CORS策略错误?,reactjs,cors,axios,Reactjs,Cors,Axios,为了解决这个问题,我尝试了很多不同的方法,但到目前为止没有一种有效 当我不添加任何标题时,会得到以下标题: 但是,当我添加它们时,会出现以下错误: 我试着在package.json中添加域作为proxy,就像我使用createreact-app一样,但没有成功 import axios from 'axios'; export default function getResponse(xappToken){ console.log(xappToken); axios.ge

为了解决这个问题,我尝试了很多不同的方法,但到目前为止没有一种有效

当我不添加任何标题时,会得到以下标题:

但是,当我添加它们时,会出现以下错误:

我试着在
package.json
中添加域作为
proxy
,就像我使用
createreact-app
一样,但没有成功

import axios from 'axios';

export default function getResponse(xappToken){
    console.log(xappToken);

    axios.get('https://api.artsy.net/api/v1/artists/popular', {
       headers: {
         'Access-Control-Allow-Origin': 'http://localhost:3000/',
         'X-Access-Token': xappToken,
         'Accept': 'application/json',
       }
     })
     .then(function (response) {
       console.log(response);
     })
     .catch(function (error) {
       console.log(error);
     })
     .then(function () {
       // always executed
     });
}

API文档:

您误解了CORS是什么。浏览器无法设置CORS头,它们是响应头(来自服务器),而不是请求头(来自客户端)。 出现此问题是因为您请求的域不允许浏览器中的源服务器请求该资源


Artsy这样做可能是为了安全:他们不希望其他网站加载未明确添加的资源。您可能无法访问Artsy的服务器代码。你可以在他们的控制台/仪表板/管理员中的某个地方添加你的应用程序URL。也许在某个地方也有一个localhost设置,那么您可以在开发它时打开它。或者您可以编辑您的主机文件,使您的网页url()路由到127.0.0.1

您所说的“仅将域添加为代理”是什么意思?dev服务器的代理只处理实际发送到它的请求,发送到另一个域的请求根本不会命中它。两个console.log屏幕截图中的artsy URL看起来都不正确。在同一个URLAh中有一个api.artsy.net和localhost,这一切现在都有意义了!看着仪表板,有一个地方可以添加,但凌晨3点我决定我没有必要这样做。谢谢你,我认为现在切换开发者工具很好,当我在某个地方托管它时,我可以在应用程序中添加正确的URL。哦,太好了,我从来没有使用过Artsy,但它们都是一样的,我想:D