【发布时间】:2021-11-13 03:40:01
【问题描述】:
我是新手,目前正在学习。在开发 Web 应用程序时,我遇到了
CORS 策略已阻止从源“https://localhost”访问“http://localhost/m/document/019286313eb7ce6_20210915125851.jpeg.webp”获取:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源
我用谷歌搜索并阅读了一些东西,但我仍然无法弄清楚如何解决这个问题。
我无权访问服务器,因为我只使用 API。所以我只想知道 jQuery 可以解决 CORS 问题还是必须在后端设置?我确实安装了 chrome 扩展以快速修复我的测试开发目的,但我只想知道是否有另一种方法来解决这个问题
这是我尝试过的
fetch('http://localhost/m/document/019286313eb7ce6_20210915125851.jpeg.webp', {
method: "GET",
headers: {
"accept": "application/json",
"Access-Control-Allow-Origin":"*"
}
})
.then(res => res.blob())
.then(blob => {
myBlob = blob;
console.log(myBlob);
});
【问题讨论】:
-
尝试从
http://localhost运行您的前端代码?也就是说,非https。或者,如果http://localhost/m/document/019286313eb7ce6_20210915125851.jpeg.webp(非 https)确实是您发出请求的 URL,并且您的前端位于http://localhost,请尝试使用https://localhost/m/document/019286313eb7ce6_20210915125851.jpeg.webp(https)。否则,如果这些确实是您的 URL,那么您遇到该 CORS 错误的原因是从https://localhostURL 到http://localhost的请求是跨域请求 - 因为他的 https-vs-http 不匹配。 -
@sideshowbarker 天哪,你是赢家!!!!感谢您的光临。我对这个错误非常头疼。我没有意识到
https-vs-http mismatch.是个问题。谢谢