關於window.locationjavascript
window.location.href 獲取整個urlhtml
window.location.pathname 獲取文件目錄前端
window.location.hostname 獲取域名java
每一次打開新的頁面,瀏覽器都會記錄頁面歷史,回退的時候經常使用back()方法json
history.back() 跨域
若是想在當前頁面的基礎上打開一個頁面,這樣不會有瀏覽記錄的存在瀏覽器
能夠這麼幹 window.location.replace()安全
例如:window.location.replace("http://www.baidu.com");服務器
關於跨域:app
瀏覽器爲了安全,搞了個同源策略,(協議、域名、端口),有一個不同,很差意思,就不容許請求的發生!
大神們想出了多種方法:
1,若是是內部的服務器的話,讓後設置下能夠跨域,簡單省事!
response.setHeader("Access-Control-Allow-Origin", "*"); * 就表明全部,這裏能夠根據須要本身設置
2,jsonp,咱們請求的js,沒有不容許這一說,隨便搞,
,利用js的這一特性,在html文件中動態插入script標籤,引用這個js,callback函數返回json字符串
function addScript(){
var script = document.createElement("script");
script.type = "text/javascript" ;
script.src = "http://localhost:8080/cross-domain/server/jsonp.jsp?callback=showName&data=1" ;
document.body.appendChild(script);
}
總而言之就是生成數據的js數據文件,引用一下,就能夠拿到數據了
可是請求成功與否很差斷定,還有就是請求地址可見,不安全
3,代理proxy
這個用的就比較多了,
種方式首先將請求發送給後臺服務器,經過服務器來發送請求,而後將請求的結果傳遞給前端。
var url = "http://localhost:8080/cross-domain/server/proxy.jsp"
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET",url,true);
xmlhttp.onreadystatechange = function (){
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
console.log(xmlhttp.responseText);
}
}
xmlhttp.send();
4.window.name + iframe
window.name能夠跨頁面使用
拷貝別人的代碼:
<script type="text/javascript"> var state = 0, iframe = document.createElement('iframe'), loadfn = function() { if (state === 1) { var data = iframe.contentWindow.name; // 讀取數據 alert(data); //彈出'I was there!' } else if (state === 0) { state = 1; iframe.contentWindow.location = "http://a.com/proxy.html"; // 設置的代理空文件 } }; iframe.src = 'http://b.com/data.html';//數據文件 if (iframe.attachEvent) { //頁面加載js時,此時iframe尚未插入到頁面裏,執行的代碼2,指向空文件 iframe.attachEvent('onload', loadfn); //1 } else { iframe.onload = loadfn; //2 } document.body.appendChild(iframe); //iframe插入頁面,監聽事件起做用,執行代碼2,獲取數據 </script>詳細信息轉載自這裏:http://www.cnblogs.com/rainman/archive/2011/02/21/1960044.html