概念:只要協議、域名、端口有任何一個不一樣,都被看成是不一樣的域。html
對於端口和協議的不一樣,只能經過後臺來解決。html5
解決辦法:跨域
服務器端對於CORS
的支持,主要就是經過設置Access-Control-Allow-Origin
來進行的。若是瀏覽器檢測到相應的設置,就能夠容許Ajax進行跨域的訪問。瀏覽器
JSONP方式:服務器
JSONP的優勢是:它不像XMLHttpRequest
對象實現的Ajax請求那樣受到同源策略的限制;它的兼容性更好,在更加古老的瀏覽器中均可以運行,不須要XMLHttpRequest或ActiveX的支持;而且在請求完畢後能夠經過調用callback的方式回傳結果。post
JSONP的缺點則是:它只支持GET請求而不支持POST等其它類型的HTTP請求, 另外須要服務端做配合支持;它只支持跨域HTTP請求這種狀況,不能解決不一樣域的兩個頁面之間如何進行JavaScript
調用的問題。spa
window.postMessage(message,targetOrigin)
方法是html5
新引進的特性,能夠使用它來向其它的window
對象發送消息,不管這個window對象是屬於同源或不一樣源,目前IE8+、FireFox、Chrome、Opera
等瀏覽器都已經支持window.postMessage
方法。code