资讯专栏INFORMATION COLUMN

http跨域详解

Jeffrrey / 540人阅读

摘要:跨域网络访问同源策略控制了不同源之间的交互,例如在使用或标签时候则会受到同源策略的约束,这些交互通常分为类通常允许跨域写操作。

跨域

为什么会有跨域??
由于浏览器的同源策略限制,浏览器会拒绝跨域请求,那么什么是同源呢?
如果两个页面的协议,端口,和域名都相同,则两个页面具有相同的源。如果3者有一个不同,则为跨域。

域的更改

页面可能会因某些限制而改变他的源。脚本可以将document.domain的值设置为其当前域或者当前域的超级域。如果将其设置为其当前域的超级域,则较短的域将用于后续源检查。假设http://store.company.com/dir/...:
document.domain = "company.com"

这条语句执行之后,页面将会成功地通过对http://company.com/dir/page.h...(假设http://company.com/dir/page.h...)。

这里必须两个页面都设置document.domain才能通过同源策略。这是因为设置document.domain都会导致端口口号被重写为null。(即使document.domain= document.domain).只有子域和父域都设置document.domain。才能确保端口号都为null。

跨域网络访问

同源策略控制了不同源之间的交互,例如在使用xmlhttpRequest或img标签时候则会受到同源策略的约束,这些交互通常分为3类
1 通常允许跨域写操作(cross-origin whites) 。例如重定向表单提交等
2 通常允许跨域资源嵌入(cross-orgin embedding). 例如img

阅读需要支付1元查看
<