1. 程式人生 > >Ajax 跨域問題解決

Ajax 跨域問題解決

為什麼會出現跨域問題

跨域,指的是瀏覽器不能執行其他網站的指令碼。它是由瀏覽器的同源策略造成的,是瀏覽器對JavaScript施加的安全限制。

在此說明一下,所謂的同源,指的是域名、協議、埠均相等。舉例如下:

請注意:localhost和127.0.0.1雖然都指向本機,但也屬於跨域。

跨域還是挺常見的啊。

解決方法
1,頭部設定

// 允許 ityangs.net 發起的跨域請求
header(“Access-Control-Allow-Origin: ityangs.net”);

//如果需要設定允許所有域名發起的跨域請求,可以使用萬用字元 *
header(“Access-Control-Allow-Origin: *”);

這個一看設定*,就會想到有安全隱患啊!

2,jsonp

$.ajax({    
        url:"",    
        dataType:'jsonp',    
        data:'',    
        jsonp:'callback', 
        success:function(result) {    
            //成功的處理  
        },  
        error:function(){  
            //錯誤處理  
}   
});    

感覺棒棒的,但是呢!

1、JSONP是一種非官方的方法,而且這種方法只支援GET方法,不如POST方法安全。
2、JSONP的實現需要伺服器配合,如果是訪問的是第三方的伺服器,我們沒有修改伺服器的許可權,那麼這種方式是不可行的。

選擇哪種方法,你有答案了嗎?