跨域总结

2017-04-08  本文已影响0人  赵BW

昨天总结了一下ajax,今天顺便把跨域也说了吧。

在正常的情况下。是不允许跨域的。因为保证安全。大家要准守同源策略
同源策略

例:http://zhaobw.com:8080/test.html
http就是协议、zhaobw.com就是域名、8080就是端口。


跨域:

跨域的方法:
详细介绍跨域方法
jsonp

html中script标签可以引入其他域下的js,比如引入线上的jquery库。利用这个特性,可实现跨域访问接口。需要后端支持


CORS

CORS 全称是跨域资源共享(Cross-Origin Resource Sharing),是一种 ajax 跨域请求资源的方式,支持现代浏览器,IE支持10以上。 实现方式很简单,当你使用 XMLHttpRequest 发送请求时,浏览器发现该请求不符合同源策略,会给该请求加一个请求头:Origin,后台进行一系列处理,如果确定接受请求则在返回结果中加入一个响应头:Access-Control-Allow-Origin; 浏览器判断该相应头中是否包含 Origin 的值,如果有则浏览器会处理响应,我们就可以拿到响应数据,如果不包含浏览器直接驳回,这时我们无法拿到响应数据。所以 CORS 的表象是让你觉得它与同源的 ajax 请求没啥区别,代码完全一样。

   res.header("Access-Control-Allow-Origin", "http://a.jrg.com:8080"); 

降域

在主域名相同, 二级域名不同的情况下。可以通过domian来进行设定

   //qwe.a.html和asd.a.html
   document.domian = "a.html"

#######postMessage
允许跨窗口通信,不论这两个窗口是否同源。postMessage方法的第一个参数是具体的信息内容,第二个参数是接收消息的窗口的源(origin),即"协议+域名+端口"。也可以设为*,表示不限制域名,向所有窗口发送。

上一篇下一篇

猜你喜欢

热点阅读