什么是跨域?跨域请求资源的方法有哪些?

什么是跨域?跨域请求资源的方法有哪些?

创新互联专注于原平网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供原平营销型网站建设,原平网站制作、原平网页设计、原平网站官网定制、微信小程序开发服务,打造原平网络公司原创品牌,更为您提供原平网站排名全网营销落地服务。

1、什么是跨域?

由于浏览器同源策略,凡是发送请求url的协议、域名、端口三者之间任意一与当前页面地址不同即为跨域。存在跨域的情况:

网络协议不同,如http协议访问https协议。

端口不同,如80端口访问8080端口。

域名不同,如qianduanblog.com访问baidu.com。

子域名不同,如abc.qianduanblog.com访问def.qianduanblog.com。

域名和域名对应ip,如www.a.com访问20.205.28.90.

2、跨域请求资源的方法:

(1)、porxy代理

定义和用法:proxy代理用于将请求发送给后台服务器,通过服务器来发送请求,然后将请求的结果传递给前端。

实现方法:通过nginx代理;

注意点:1、如果你代理的是https协议的请求,那么你的proxy首先需要信任该证书(尤其是自定义证书)或者忽略证书检查,否则你的请求无法成功。

(2)、CORS【Cross-OriginResourceSharing】

定义和用法:是现代浏览器支持跨域资源请求的一种最常用的方式。

使用方法:一般需要后端人员在处理请求数据的时候,添加允许跨域的相关操作。如下:

res.writeHead(200,{ "Content-Type":"text/html;charset=UTF-8", "Access-Control-Allow-Origin":\'http://localhost\', \'Access-Control-Allow-Methods\':\'GET,POST,OPTIONS\', \'Access-Control-Allow-Headers\':\'X-Requested-With,Content-Type\' });

(3)、jsonp

定义和用法:通过动态插入一个script标签。浏览器对script的资源引用没有同源限制,同时资源加载到页面后会立即执行(没有阻塞的情况下)。

特点:通过情况下,通过动态创建script来读取他域的动态资源,获取的数据一般为json格式。

实例如下:

缺点:

1、这种方式无法发送post请求(这里)

2、另外要确定jsonp的请求是否失败并不容易,大多数框架的实现都是结合超时时间来判定。


网站题目:什么是跨域?跨域请求资源的方法有哪些?
转载来源:http://scyanting.com/article/cpocpp.html