如何处理CORS错误在JavaScript或jQuery?

2022-01-30 08:55:21 标签 jquerycors

我是一个新人,目前正在学习。在开发web应用程序时,我遇到了

访问在'http://localhost/m/document/019286313eb7ce6_20210915125851。jpeg。webp'从来源'https://localhost'已经被CORS策略阻止:响应pre - flight请求不通过访问控制检查:没有'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);
        });

###出于安全原因,在现代浏览器上,你依赖于服务器,所以你可以绕过它的最好方式是使用代理服务器,代理你的请求,并自动启用CORS

###CORS错误可能是噩梦。CORS报头即Access-Control-Allow-Origin是一个RESPONSE报头,你不能在CLIENT上设置一个RESPONSE报头。它的目的是保护服务器响应不受未知域的影响,从而禁止使用api。

在你的情况下,你没有访问服务器。你有选择

“继续chrome扩展暂时允许您的开发机器访问API”。

在服务器上更改报头以包含您的域。(需要服务器访问)

独立访问API并将结果以文件(JSON file)的形式提供给你的应用程序。

配置代理:您可以定义将任何访问/m路径的请求转发到前端开发服务器上的http://localhost/m。由于开发服务器是与后端API通信的中间人,它可以安全地避免CORS。

阅读全文

▼ 版权说明

相关文章也很精彩
推荐内容
更多标签
相关热门
全站排行
随便看看

错说 cuoshuo.com —— 程序员的报错记录

部分内容根据CC版权协议转载;网站内容仅供参考,生产环境使用务必查阅官方文档

辽ICP备19011660号-5

×

扫码关注公众号:职场神器
发送: 1
获取永久解锁本站全部文章的验证码