资讯专栏INFORMATION COLUMN

老生常谈跨域问题

Kaede / 1773人阅读

摘要:浏览器在请求不同域的资源时,会因为同源策略的影响请求不成功,这就是通常被提到的跨域问题。需要说明的几个点如果是协议和端口造成的跨域问题,前端是无能为力的。

前段时间在网上跟一个大厂据说很NB的同行大佬聊天,然后大佬问了我一个问题,“在实际生产中前端怎么解决跨域问题” 我当时就回答说我们目前的状况是需要服务端做一些配合解决的,然后大佬很不满意的暗示了我一下JSONP用过吗?我当时就觉得很不可思议,实际生产中就只有get请求吗?而且这玩意儿在实际生产中都基本不用的,我开始有点怀疑我是不是掉队了,所以今天大概梳理下这块的知识点。

浏览器在请求不同域的资源时,会因为同源策略的影响请求不成功,这就是通常被提到的“跨域问题”。作为前端开发,跨域经常遇到,我们通常所说的JS跨域,指的是在处理跨域请求的过程中,技术面会偏浏览器端较多一些,那什么是跨域呢?
JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象,当协议、子域名、主域名、端口号,其中的任意一个不同的时候都是不同的域,那也就是算做跨域。
请求跨域的时候并不是请求发不出去,请求能发出去,服务端能收到请求并正常返回结果,只是结果被浏览器拦截了,正是因为同源策略的限制,同源策略的要求是协议、域名、和端口号都完全一致才可以进行正常的通信。

需要说明的几个点:
1.如果是协议和端口造成的跨域问题,前端是无能为力的。
2.在跨域问题上,域只是通过访问URL的头部(.com或者.cn以及之前部分)来识别的,而不是根据域名对应的IP地址是否相同去判断的。
3.在实际生产中JSONP的局限性很大,基本上不会去考虑,使用几率很小。

目前我们的状况是在服务器端头部增加配置:

header( "Access-Control-Allow-Origin:*" );
header( "Access-Control-Allow-Methods:POST,GET" );




各位路过的大佬有什么优秀的方案吗?请不吝赐教

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/104324.html

相关文章

  • 老生常谈跨域问题JSONP解决方式

    摘要:解决方案跨域问题可以说在前端方面不可避免,但同源策略毕竟在保护网络信息安全方面起到很大的作用。 起因 说起来源...今天去茶水间倒水时,偶然听到公司面试官在问面试者前端跨域的如何解决。我心中默默想了一想,啪啪啪瞬间想出几个关键词,iframe,cors,同源策略,jsonp...转念一想,虽然这是很常见的面试题,然而我在开发过程中,还真没有用过jsonp这种方式...就连原理也说不好。...

    asoren 评论0 收藏0
  • 老生常谈跨域问题JSONP解决方式

    摘要:解决方案跨域问题可以说在前端方面不可避免,但同源策略毕竟在保护网络信息安全方面起到很大的作用。 起因 说起来源...今天去茶水间倒水时,偶然听到公司面试官在问面试者前端跨域的如何解决。我心中默默想了一想,啪啪啪瞬间想出几个关键词,iframe,cors,同源策略,jsonp...转念一想,虽然这是很常见的面试题,然而我在开发过程中,还真没有用过jsonp这种方式...就连原理也说不好。...

    jemygraw 评论0 收藏0
  • 前端20个真正灵魂拷问,吃透这些你就是中级前端工程师 【上篇】

    摘要:还是老规矩,从易到难吧传统的定时器,异步编程等。分配对象时,先是在空间中进行分配。内存泄漏内存泄漏是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。 showImg(https://segmentfault.com/img/bVbwkad?w=1286&h=876); 网上参差不弃的面试题,本文由浅入深,让你在...

    mdluo 评论0 收藏0
  • 前端20个真正灵魂拷问,吃透这些你就是中级前端工程师 【上篇】

    摘要:还是老规矩,从易到难吧传统的定时器,异步编程等。分配对象时,先是在空间中进行分配。内存泄漏内存泄漏是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。 showImg(https://segmentfault.com/img/bVbwkad?w=1286&h=876); 网上参差不弃的面试题,本文由浅入深,让你在...

    leap_frog 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<