Ajax 跨域問題解決
阿新 • • 發佈:2018-12-23
為什麼會出現跨域問題
跨域,指的是瀏覽器不能執行其他網站的指令碼。它是由瀏覽器的同源策略造成的,是瀏覽器對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的實現需要伺服器配合,如果是訪問的是第三方的伺服器,我們沒有修改伺服器的許可權,那麼這種方式是不可行的。
選擇哪種方法,你有答案了嗎?