来自来源“ xxx”的信息已被CORS政策阻止:

时间:2019-03-07 06:36:42

标签: javascript node.js github cors axios

我正在尝试从浏览器进行最基本的get请求,由于CORs问题,该请求失败了。

axios.get(
  "https://github.com/login/oauth/authorize?client_id={ID}"
);

是否不可能从浏览器发出此请求?我试图了解如何单击一个按钮并使此链接起作用。

  

来自来源“ http://localhost:3001”的信息已被CORS策略阻止:请求的资源上没有“ Access-Control-Allow-Origin”标头。

2 个答案:

答案 0 :(得分:1)

简单的回答是

未经服务器许可,您无法呼叫任何端点(不同的来源)。

好!我知道了。但为什么?它是如何工作的?

它称为CORS (跨源资源共享)。一行是一种浏览器安全性。浏览器阻止您阻止此类请求。

好!但是浏览器如何知道我没有许可或我在作弊。 :D

好吧,如果选中浏览器的“网络”选项卡,则浏览器会使用OPTION方法向服务器发送另一个请求(在实际请求之前)。在请求的响应中,服务器将告知浏览器是否有效。

有关更多详细信息,请阅读MDN https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

答案 1 :(得分:-1)

  

理想解决方案

您的服务器应启用跨源请求,而不是客户端。为此,您可以检查this cool link的多个平台的实现和配置

  

尝试的前端修复程序

var config = {
    headers: {'Access-Control-Allow-Origin': '*'}
};

axios.get(
    "https://github.com/login/oauth/authorize?client_id={ID}, config"
);
  

用于开发的快速临时修复程序

this chrome extension添加到您的Chrome浏览器中并将其打开。不会出现任何问题,但这不是永久解决方法。