我正在尝试从浏览器进行最基本的get
请求,由于CORs问题,该请求失败了。
axios.get(
"https://github.com/login/oauth/authorize?client_id={ID}"
);
是否不可能从浏览器发出此请求?我试图了解如何单击一个按钮并使此链接起作用。
来自来源“ http://localhost:3001”的信息已被CORS策略阻止:请求的资源上没有“ Access-Control-Allow-Origin”标头。
答案 0 :(得分:1)
简单的回答是否。
未经服务器许可,您无法呼叫任何端点(不同的来源)。
它称为CORS (跨源资源共享)。一行是一种浏览器安全性。浏览器阻止您阻止此类请求。
好吧,如果选中浏览器的“网络”选项卡,则浏览器会使用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浏览器中并将其打开。不会出现任何问题,但这不是永久解决方法。