1.同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。
当一个浏览器的两个tab页中分别打开来 百度和谷歌的页面,当浏览器的百度tab页执行一个脚本的时候会检查这个脚本是属于哪个页面的,即检查是否同源,只有和百度同源的脚本才会被执行。
2.跨域请求,即请求不同源下的资源。你会看到这样的提示:XMLHttpRequest cannot load xxxxxxx is not allowed by Access-Control-Allow-Origin.
1.同源策略如下:
可见:
第一,如果是协议和端口造成的跨域问题“前台”是无能为力的,
第二:在跨域问题上,域仅仅是通过“URL的首部”来识别而不会去尝试判断相同的ip地址对应着两个域或两个域是否在同一个ip上。
“URL的首部”指window.location.protocol +window.location.host,也可以理解为“Domains, protocols and ports must match”。
如果非要跨域请求,请参考以下方式:
a.修改服务器端脚本配置
在服务器响应客户端的时候,带上Access-Control-Allow-Origin头信息。
- 如果设置 Access-Control-Allow-Origin:*,则允许所有域名的脚本访问该资源。
- Access-Control-Allow-Origin:http://www.phpddt.com.com,允许特定的域名访问。
php: header("Access-Control-Allow-Origin: *");
b.jsonp
c.document.domain+iframe
d.动态创建script标签可以加载资源。(script标签不受同源策略限制)
e.cors
f.jsonp
g.web socket
h.window.name
浙公网安备 33010602011771号