摘要:跨域網絡訪問同源策略控制了不同源之間的交互,例如在使用或標簽時候則會受到同源策略的約束,這些交互通常分為類通常允許跨域寫操作。
跨域
為什么會有跨域??
由于瀏覽器的同源策略限制,瀏覽器會拒絕跨域請求,那么什么是同源呢?
如果兩個頁面的協(xié)議,端口,和域名都相同,則兩個頁面具有相同的源。如果3者有一個不同,則為跨域。
頁面可能會因某些限制而改變他的源。腳本可以將document.domain的值設置為其當前域或者當前域的超級域。如果將其設置為其當前域的超級域,則較短的域將用于后續(xù)源檢查。假設http://store.company.com/dir/...:
document.domain = "company.com"
這條語句執(zhí)行之后,頁面將會成功地通過對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