Javascript 从浏览器获取请求作品&;邮递员,但在React应用程序中从localhost失败,端点是否必须添加访问控制允许来源?

Javascript 从浏览器获取请求作品&;邮递员,但在React应用程序中从localhost失败,端点是否必须添加访问控制允许来源?,javascript,reactjs,axios,fetch,Javascript,Reactjs,Axios,Fetch,我正在做一个项目,在那里我得到了一个端点来获取一些数据。我将该端点的url放在浏览器中,我看到了预期的JSON。我在《邮递员》中提出了同样的要求,我得到了预期的结果。然后,在React应用程序中使用fetch或axios从localhost发出请求,当我在浏览器中运行应用程序时,我会得到: CORS策略已阻止从源“”获取“”的访问:请求的资源上不存在“访问控制允许源”标头。如果不透明响应满足您的需要,请将请求的模式设置为“no cors”,以获取禁用cors的资源 我只是想确定我对此无能为力?修

我正在做一个项目,在那里我得到了一个端点来获取一些数据。我将该端点的url放在浏览器中,我看到了预期的JSON。我在《邮递员》中提出了同样的要求,我得到了预期的结果。然后,在React应用程序中使用
fetch
axios
localhost
发出请求,当我在浏览器中运行应用程序时,我会得到:

CORS策略已阻止从源“”获取“”的访问:请求的资源上不存在“访问控制允许源”标头。如果不透明响应满足您的需要,请将请求的模式设置为“no cors”,以获取禁用cors的资源

我只是想确定我对此无能为力?修改端点以添加
Access Control Allow Origin
头是唯一的解决方案,还是可以从请求端执行某些操作

CORS(跨来源资源共享)是服务器表示“即使您来自不同的来源,我也会接受您的请求”的一种方式。这需要服务器的合作–因此,如果您无法修改服务器(例如,如果您使用的是外部API),这种方法将不起作用

修改服务器以添加标头访问控制允许来源:*以从任何位置启用跨来源请求(或指定域而不是*)。这应该能解决你的问题

但是您可以在邮递员和浏览器中访问它,如果您可以在浏览器级别禁用CORS,它将工作

在Chrome中禁用CORS:

  • 为chrome浏览器创建一个新的快捷方式并重命名为“anyname(disablecors)”

  • 在新建的快捷方式上单击鼠标右键,然后选择“属性”

  • 在系统中创建具有任意名称的文件夹(tempchrome)

  • 选择shorcut选项卡并将目标添加为“[PATH\u TO\u CHROME]\CHROME.exe”--禁用web安全--禁用gpu--用户数据目录=“临时浏览器的路径”

  • 单击应用并保存

  • 在新创建的chrome快捷方式(disablecors)中打开应用程序


  • 如果前端在端口3000上运行,后端在端口5000上运行,另一个快速修复方法是应用代理。 事情是这样的。将以下依赖项放入客户端包中:

      "proxy": "http://localhost:5000",
    

    然后使请求是相对的,而不是绝对的。应使用此设置。

    如果是
    创建react应用程序,则可以在配置中设置代理。参见docsit是create react app,如
    自述文件中所述,charlietfl有没有办法让react脚本变得详细(实际上,告诉它告诉webpack dev server变得详细),这样我就可以确切地看到请求是如何被代理的?我已经被困了几个小时,无法让代理与我的服务器一起工作。我可以使用类似于
    google.com
    的工具,当我代理到需要的服务器时,会出现404错误。但我不认为它会攻击服务器,我相信它不会代理。