最近遇到的幾個小東西

關於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
相關文章
相關標籤/搜索