最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 无法躲开的跨域问题与解决方法

    正文概述 掘金(PEAL)   2021-07-02   530

    为什么会有跨域?

    跨域是一个老生常谈的话题了,前端开发者们100%会遇见的问题,要聊它必须要先知道它是什么,但是按照概念来说的话会比较枯燥,所以应该明白为什么是它?

    一开始在WEB1.0时代,网页都还只是单纯的网页,后来JavaScript脚本的介入变得越发强大,我们可以通过脚本操作各种各样的资源了,但是安全问题也出现了。在没有限制的情况下,任何脚本可以请求任何来源的资源,会导致安全和杂乱的问题。

    同源策略

    于是网景公司提出一个浏览器端的安全策略即“同源策略”,何为同源,以 https://www.baidu.com 为例,同源为:

    • 相同协议(https)
    • 相同域名(baidu.com)
    • 相同端口(http默认为80端口,https默认为443)

    这三个条件触发任意一个则浏览器会触发跨域问题,抛出错误,禁止执行请求操作。意味着运行在https协议上的网页不能请求http协议的任何资源、baidu.com不能执行taobao.com域名的任何资源、80端口的网页不能请求8080端口的任何资源。

    无法躲开的跨域问题与解决方法

    那么怎么解决跨域呢?

    常用的方法有三个:

    • 通过JSONP的方法,仅支持GET请求。原理是利用浏览器script标签src加载的资源不触发跨域的原理,后端生成一个js自执行函数代码,return出来请求返回的数据。这个方法不太推荐,因为已经过时,比如我们常用的axios已经不支持这个方法了。

    • 接口返回头增加 Access-Control-Allow-Origin,表示该资源是共享资源,可以被任何域使用。这是最常用的。

    • 使用代理服务,因为跨域是浏览器的概念,后端并没有这个限制,所以可以通过后端代理我们的接口进行转发和返回,十分推荐的方法。

    总的来说在目前前后端分离的大环境下,跨域问题后端解决为优,前端毕竟无法逃脱浏览器的限制。


    起源地下载网 » 无法躲开的跨域问题与解决方法

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元