CORS Error: “requests are only supported for protocol schemes: http…” has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present etc

#1 问题描述

根据报错,是跨域的问题,一种安全策略。

网上有比较多解决方案(目标网站添加相关头部、设置anonymous等等  参考之一https://blog.csdn.net/weixin_40647516/article/details/102660374),但是只有以下这种  设置浏览器允许跨域访问 的方案能解决(在我目前的项目里)

#2 设置浏览器允许跨域访问

# 2.1 火狐 firefox

地址栏输入 about.config 进入配置页

搜索”security.fileuri.strict_origin_policy”,设置为false

重启浏览器,即可跨域访问

# 2.2 谷歌 chrome

参考 https://www.cnblogs.com/laden666666/p/5544572.html

版本号49之前的跨域设置

先介绍一下老方法,参考了一些网上的教程,其实直接在打开命令上加--disable-web-security就可以了。

具体做法为:

1.下载并安装好chorme浏览器后在桌面找到浏览器快捷图标并点击鼠标右键的属性一栏。
2.在属性页面中的目标输入框里加上   --disable-web-security  如下图所示:

3.点击应用和确定后关闭属性页面,并打开chrome浏览器。如果浏览器出现提示“你使用的是不受支持的命令标记 --disable-web-security”,那么说明配置成功。

版本号49之后的chrome跨域设置

chrome的版本升到49之后,跨域设置比以前严格了,在打开命令上加--disable-web-security之后还需要给出新的用户个人信息的目录。众所周知chrome是需要用gmail地址登录的浏览器,登录后就会生成一个存储个人信息的目录,保存用户的收藏、历史记录等个人信息。49版本之后,如果设置chrome浏览器为支持跨域模式,需要指定出一个个人信息目录,而不能使用默认的目录,估计是chrome浏览器怕用户勿使用跨域模式泄露自己的个人信息(主要是cookie,很多网站的登录token信息都是保存在cookie里)。

具体做法为:

1.在电脑上新建一个目录,例如:C:\MyChromeDevUserData

2.在属性页面中的目标输入框里加上   --disable-web-security --user-data-dir=C:\MyChromeDevUserData,--user-data-dir的值就是刚才新建的目录。

3.点击应用和确定后关闭属性页面,并打开chrome浏览器。

再次打开chrome,发现有“--disable-web-security”相关的提示,说明chrome又能正常跨域工作了。

# 3 类似的 本地cookie政策

在chrome中不支持js、jq操作本地cookie(比如创建本地cookie,用时会报undefined),也是出于安全考虑。

而firefox没有这个限制。

posted @   Erio  阅读(461)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起