Ajax跨域問題是由瀏覽器的同源策略造成的, 我們可以通過協(xié)議+域名+端口確定一個(gè)源. 你可以把一個(gè)項(xiàng)目理解為一個(gè)源. Ajax請(qǐng)求可以對(duì)源內(nèi)的資源發(fā)起訪問, 但是不同源之間進(jìn)行Ajax就會(huì)有問題.簡(jiǎn)單來說就是,前臺(tái)頁面ajax獲取數(shù)據(jù)的地址和前臺(tái)頁面地址不是同一個(gè)站點(diǎn),或者不是同一個(gè)訪問地址。
如果直接使用ajax訪問,會(huì)有以下錯(cuò)誤:
最簡(jiǎn)單的解決方式就是在ajax訪問文件的頭部添加header標(biāo)簽來允許網(wǎng)站訪問,允許固定的域名訪問
header('Access-Control-Allow-Origin:http://www.cnwenhui.com');
上面的代碼是允許該網(wǎng)址進(jìn)行請(qǐng)求。也可以添加多個(gè)網(wǎng)址,允許多個(gè)域名訪問,添加方法略有不同,傳入數(shù)組
$origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : ''; $allow_origin = array( 'http://client1.runoob.com', 'http://client2.runoob.com' ); if(in_array($origin, $allow_origin)){ header('Access-Control-Allow-Origin:'.$origin); }
如果是不考慮安全方面的問題,則直接允許所有網(wǎng)址訪問就可以
header('Access-Control-Allow-Origin:*');
一般我在項(xiàng)目中使用最后一種較多,在不涉及隱私和金錢方面或者需要安全性較高的接口,一般允許所有訪問。
下一篇: 介紹一下a標(biāo)簽的用法