
2015-09-14 |&nb≠$sp; 發布者:梁國(guó)芳&nbs≤♥✔¥p; | &nb$↔sp;查看(kàn):3320次
php先來(lái)看(kàn)下(xià)錯&∞♦(cuò)誤
“XMLHttpRequest cannot∏δ load http://comment.t¶< εtlsa.com/api/post?id=1&φσπmsg=123123123&code=↓↕™→453423&username=涼β白(bái)開(kāi) Origin http://ww§€& w.ttlsa.com is not allowed by &•₽ Access-Control-Allow-Origin<>.”
什(shén)麽是(shì)Access-Control-Allow-Orig γin
Access-Control-Allow-Origin是(s£<hì)HTML5中定義的(de)一(yī)種服務器(qì)端返回Respon<σse header,用(yòng)來(lá<φ i)解決資源(比如(rú)字體(tǐ))的(de)跨域權限✘ε™≈問(wèn)題。
它定義了(le)該資源允許被哪個(gè)域引用(yòng),或者↑δ被所有(yǒu)域引用(yòng)(google字體(tǐ)使↔©€用(yòng)*表示字體(tǐ)資源允許被≈≥•所有(yǒu)域引用(yòng))。
什(shén)麽是(shì)資源跨域權限
先來(lái)看(kàn)看(kàn)同域和(hé)不(bù)同域的(de)長¶α(cháng)相(xiàng)
相(xiàng)同域
http://www.ttlsa.com/
http://www.ttlsa.com/nginx
不(bù)同域
http://www.ttlsa.com
http://bbs.ttlsa.com
https://www.ttlsa.com
http://www.ttlsa.com:808β→0
由此可(kě)見(jiàn),相(xiàng)同→×€域必須忙住協議(yì)相(xiàng)同、端口相(xiàng)同≠♦∞≤、域名相(xiàng)同. 隻要(yào)其中一(☆☆λyī)點不(bù)滿足那(nà)就(jiù)是(shì)跨域
跨域案例
站(zhàn)點www.ttlsa.com需要(yào)¥★調用(yòng)comment.ttlsa.com/aδ®☆♠pi/post.php,那(nà)麽這(zhè)個(gè)post.php必須加上(shàn↕☆₩¥g)如(rú)下(xià)代碼
代碼1
代碼2
header方式不(bù)能(néng)使用(yòng)₹ 正則,例如(rú)*.ttlsa.com,不(bù)↓÷∑過我們可(kě)以使用(yòng)如(rú)下(xià)方法∞™,将內(nèi)容echo到(dào)php響應內(nèi)容中
目前還(hái)不(bù)清楚為(wèi)什(shén)₹>δ©麽header裡(lǐ)面用(yòng)&δ$不(bù)了(le)正則,而meta裡(lǐ)面可(kě)以用(yòn§♠∞g)正則.後續查找原因,知(zhī)道(dào)的(de)兄弟(dì)請(q★¶≠∑ǐng)留言告知(zhī),小(xiǎo)生(shēng)在÷☆ελ此謝(xiè)過.
從(cóng)上(shàng)面的(de)代碼可(kě)以看(kà©αn)出, 代碼1安全性不(bù)夠,但(dàn)→☆是(shì)使用(yòng)接口的(de)人(rén÷ £π)隻會(huì)獲取到(dào)響應的(de)body內(nèi)容。代碼2↑相(xiàng)對(duì)安全,但(dàn)是(s¥♠♣∑hì)響應的(de)body內(nèi)容體(tǐφ )裡(lǐ)面包含<meta http-equiv=σ€"Access-Control-Allow-Origin&q₽ uot; content="*.σ$ttlsa.com">,多(duō)少(shǎo♠±♠)影(yǐng)響接口的(de)使用(yòn→φσ↑g).
