国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 網(wǎng)站 > Apache > 正文

Apache中配置支持CORS(跨域資源共享)實(shí)例

2024-08-27 18:26:31
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

當(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文件:

原始代碼

復(fù)制代碼 代碼如下:

<Directory />
AllowOverride none
Require all denied
</Directory>

改為下面代碼
復(fù)制代碼 代碼如下:

<Directory />
Require all denied
Header set Access-Control-Allow-Origin *
</Directory>

 

在處理請(qǐng)求的PHP文件中設(shè)置:

復(fù)制代碼 代碼如下:

<?php
    header("Access-Control-Allow-Origin:*");
    //處理請(qǐng)求輸出數(shù)據(jù)

?>


配置的含義是允許任何域發(fā)起的請(qǐng)求都可以獲取當(dāng)前服務(wù)器的數(shù)據(jù)。當(dāng)然,這樣有很大的危險(xiǎn)性,惡意站點(diǎn)可能通過(guò)XSS攻擊我們的服務(wù)器。所以我們應(yīng)該盡量有針對(duì)性的對(duì)限制安全的來(lái)源,例如下面的設(shè)置使得只有http://Vevb.com/這個(gè)域才能跨域訪問(wèn)服務(wù)器的API。

httpd.conf中:

復(fù)制代碼 代碼如下:

Header set Access-Control-Allow-Origin //www.survivalescaperooms.com

php文件中:

復(fù)制代碼 代碼如下:

<?php
header("Access-Control-Allow-Origin://www.survivalescaperooms.com");

前臺(tái)代碼:

復(fù)制代碼 代碼如下:

<script type="text/javascript">
function createCORSRequest(method, url) {
var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr) {
// 此時(shí)即支持CORS的情況
// 檢查XMLHttpRequest對(duì)象是否有“withCredentials”屬性
// “withCredentials”僅存在于XMLHTTPRequest level 2對(duì)象里
} else {
// 否則檢查是否支持XDomainRequest
// XDomainRequest僅存在于IE中,是IE用于支持CORS請(qǐng)求的方式
xhr = new XDomainRequest();
}
xhr.open(method, url, true);
xhr.send();
xhr.onload = function(){
alert(xhr.responseText);
}
}
createCORSRequest('GET', "http://192.168.1.58/t.php");
</script>
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 兴和县| 万州区| 宿州市| 内丘县| 荃湾区| 台州市| 丹东市| 陈巴尔虎旗| 龙泉市| 渝中区| 漳州市| 宁化县| 元氏县| 涡阳县| 寻乌县| 龙江县| 磐石市| 普安县| 普安县| 建德市| 阿克| 白玉县| 靖江市| 武威市| 会昌县| 金塔县| 临清市| 和田市| 呼伦贝尔市| 吐鲁番市| 洛宁县| 广安市| 英吉沙县| 都安| 祁门县| 吕梁市| 齐齐哈尔市| 石河子市| 永福县| 昭平县| 乌鲁木齐市|