• 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没有这个限制。

  • 相关阅读:
    写个三个月后的我
    设置gridcontrol的焦点行
    希望我能更快的成长
    女人最想要的是什么
    初始化时查看combox的文本内容
    获取一个gridcontrol的数据行数
    第八章:Applet基础学习
    浅谈研发项目经理的技能要求
    学习C和C++应该看的书
    双缓冲绘图
  • 原文地址:https://www.cnblogs.com/lqerio/p/14650570.html
Copyright © 2020-2023  润新知