虛擬主機的相關設置(本地綁定兩個不同的域名)
參看:http://blog.csdn.net/u013162144/article/details/41310691
A、1.窗口間通信的兩種方式——同域下:
一.iframe
oMyIframe.contentWindow -> 被iframe包含的頁面的window對 象(如:oMyIframe.contentWindow.document.body.style.background = 'red';)
二.Window.open()
window.open 有一個返回值,返回被打開窗口的window對象
2.不同域(即跨域):
i. //當本頁面和包含頁面不在同一個域名下的時候,下面這樣的操作就會有跨域操作安全限制問題
oMyIframe.contentWindow.document.body.style.background = 'red';)
解決方法:HTML5中的postMessage對象接收消息的窗口對象.postMessage()
一參 : 發送的數據,二參:接收的域
例如:
oMyIframe.contentWindow.postMessage('1', 'http://www.b.com');
window.addEventListener('message', function(ev) {
if (ev.data == '1') {
document.body.style.background = 'red';
}
}, false);
B、Ajax Level2(以前ajax不支持跨域,現在可以了)
在標準瀏覽器下,XMLHttpRequest對象已經是升級版本,支持了更多的特性,可以跨域了但是,如果想實現跨域請求,還需要後端的相關配合纔可以
oBtn.onclick = function() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
alert(xhr.responseText);
}
}
}
xhr.open('get', 'http://www.b.com/ajax.php', true);
xhr.send();
}
<?php
header('Access-Control-Allow-Origin:http://www.a.com'); //這是允許訪問該資源的域
echo 'hello';
IE如果想實現跨域請求,則需要使用另外一個對象去實現:XDomainRequest
var oXDomainRequest = new XDomainRequest();
oXDomainRequest.onload = function() {
//沒有onreadystatechange事件
alert(this.responseText);
}
oXDomainRequest.open('get', 'http://www.b.com/ajax.php', true);
oXDomainRequest.send();
C、websocket