老生常谈跨域问题

前段时间在网上跟一个大厂听说很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" );

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

相关文章
相关标签/搜索