ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

JSONP跨域和CORS跨域的区别

2019-10-31 17:56:11  阅读:191  来源: 互联网

标签:浏览器 请求 CORS 同源 JSONP 跨域


跨域:

由于浏览器中的javascript的同源策略,同源策略会阻止一个域的JavaScript脚本和另一个域的内容进行交互。

同源:协议,域名,端口,三者有一个不同即为跨域。

解决跨域有以下多种方法,其中最常用被我们熟知的有两种,JSONP和CORS

 

JSONP:

同源策略下,某个服务器下的页面是无法获取该服务器之外的数据的,但是javascript中的image、ifrrame、script等标签是个例外,这些标签可以通过src标签属性请求到其他服务器上的数据,利用script开发策略,我们可以跨域请求数据,同时也需要服务端的配合,普通的请求返回来的是书,而使用JSONP请求返回的数据是一段可以执行JS代码,JSONP 是服务器与客户端跨源通信的常用方法。最大特点就是简单适用,兼容性好(兼容低版本IE),缺点是只支持get请求,不支持post请求。

 

CORS:

是跨域资源共享,它是 W3C 标准,属于跨源 AJAX 请求的根本解决方法。当浏览器使用XMLHttpRequest发送请求时,浏览器发现该请求不符合同源策略,会给该请求加一个请求头:Origin,后台进行一系列处理,如果确定接受请求则在返回结果中加入一个响应头:Access-Control-Allow-Origin;浏览器判断该相应头中是否包含Origin的值,如果有则浏览器会处理响应,我们就可以拿到响应数据,如果不包含浏览器直接驳回,这时我们无法拿到响应数据。CORS与JSONP的使用目的相同,但是比JSONP更强大,CORS支持所有的浏览器请求类型,承载的请求数据量更大,开放更简洁,服务端只需要将处理后的数据直接返回,不需要再特殊处理。但是CORS对低版本IE不支持。

标签:浏览器,请求,CORS,同源,JSONP,跨域
来源: https://www.cnblogs.com/fastrose/p/11772704.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有