js跨域是一個(gè)老生常談的話題问慎,但是如今的時(shí)代惫叛,Access-Control-Allow-Origin越來越成為主流的跨域方案奕锌,尤其是移動(dòng)端衫贬,瀏覽器都是支持的。
原理
Access-Control-Allow-Origin的原理很簡(jiǎn)單歇攻,就是服務(wù)器端設(shè)置指定的域允許跨域訪問,當(dāng)然這也需要瀏覽器同時(shí)支持梆造。
操作
通常我們服務(wù)器端都是用php語言缴守,php設(shè)置Access-Control-Allow-Origin就一句:
header('Access-Control-Allow-Origin: http://www.baidu.com');
但是它麻煩之處在于只能設(shè)定一個(gè)域名葬毫,或者是寫成*(即星號(hào),允許所有域名跨域)屡穗,顯然星號(hào)就太泛濫了贴捡,但是有時(shí)候一個(gè)域名又不夠用,怎么辦村砂?
可以寫條件語句:
if ( strpos($_SERVER['HTTP_REFERER'], 'http://aaa.com') === 0 ) {
header('Access-Control-Allow-Origin: http://aaa.com');
} elseif ( strpos($_SERVER['HTTP_REFERER'], 'https://bbb.com') === 0 ) {
header('Access-Control-Allow-Origin: https://bbb.com');
} elseif ( strpos($_SERVER['HTTP_REFERER'], 'http://ccc.com') === 0 ) {
header('Access-Control-Allow-Origin: http://ccc.com');
}