當(dāng)使用ajax跨域請(qǐng)求時(shí),瀏覽器報(bào)錯(cuò):XmlHttpRequest error: Origin null is not allowed by Access-Control-Allow-Origin.肯定是跨域的問(wèn)題,如果用jsonp或者proxy的方式進(jìn)行修改的話未免需要太大的工程量,所以采用CORS這種比較簡(jiǎn)單高效的技術(shù)。相比JOSP的方式,CORS更為高效。JSONP由于它的原理只能實(shí)現(xiàn)GET請(qǐng)求,而CORS支持所有類(lèi)型的HTTP請(qǐng)求。使用CORS,可以使用普通的ajax實(shí)現(xiàn)跨域,這對(duì)于前端來(lái)說(shuō)是極大的福音了,這個(gè)技術(shù)被現(xiàn)在大多數(shù)瀏覽器所普遍支持,因?yàn)榭缬蛞呀?jīng)是普遍的要求,瀏覽器肯定會(huì)逐漸流出適當(dāng)?shù)摹箝T(mén)'出來(lái)專(zhuān)門(mén)用以跨域。
瀏覽器支持情況
經(jīng)本人測(cè)試IE瀏覽器中IE10及以上才可正常發(fā)送請(qǐng)求
1.服務(wù)器端對(duì)于CORS的支持,是通過(guò)設(shè)置Access-Control-Allow-Origin來(lái)進(jìn)行的。如果瀏覽器檢測(cè)到相應(yīng)的設(shè)置,就可以允許Ajax進(jìn)行跨域的訪問(wèn),也就是相應(yīng)的‘后門(mén)'。
設(shè)置Apache:Apache需要使用mod_headers模塊來(lái)激活HTTP頭的設(shè)置,它默認(rèn)是激活的。你只需要修改Apache配置文件中的httpd.conf文件:
原始代碼
在處理請(qǐng)求的PHP文件中設(shè)置:
httpd.conf中:
前臺(tái)代碼:
新聞熱點(diǎn)
疑難解答
圖片精選