最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Ajax如何進(jìn)行跨域請(qǐng)求?Ajax跨域請(qǐng)求的原理

 更新時(shí)間:2017年08月03日 09:34:37   作者:xyphf  
Ajax如何進(jìn)行跨域請(qǐng)求?這篇文章主要為大家詳細(xì)介紹了Ajax跨域請(qǐng)求的原理,Ajax怎么樣做跨域請(qǐng)求?具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Ajax跨域請(qǐng)求的具體實(shí)現(xiàn)過程,供大家參考,具體內(nèi)容如下

下面我們?cè)诒镜亟▋蓚€(gè)站點(diǎn)演示一下

第一步首先我們?cè)诒镜卮罱ê靡粋€(gè)Apache服務(wù)器;下載地址;
第二步服務(wù)器配置好以后,在本地配置好兩個(gè)虛擬的域名;
第三步我們?cè)贑盤建一個(gè)文件夾命名為”HTML5”;
第四步找到Apache虛擬主機(jī)的配置文件,然后打開配置文件

Apache虛擬主機(jī)的配置文件

第五步在第三步建的HTML5文件夾下分別建一個(gè)文件夾a和文件夾b;
第六步修改Apache虛擬主機(jī)的配置文件,如圖

修改Apache虛擬主機(jī)的配置文件

第七步修改一下host文件,添加a和b的網(wǎng)址,通常host文件路徑在C:\Windows\System32\drivers\etc 下

修改一下host文件

我們?cè)贖TML5/a文件夾下建一個(gè)7.ajax.html文件

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>獲取同域下內(nèi)容</title>
<script>
window.onload = function() {
 var oBtn = document.getElementById('btn');
 // 忽略IE6
 oBtn.onclick = function() {
 //創(chuàng)建一個(gè)ajax對(duì)象
 var xhr = new XMLHttpRequest();
 //監(jiān)聽事件
 xhr.onreadystatechange = function() {
 if (xhr.readyState == 4) {
 if (xhr.status == 200) {
 alert(xhr.responseText);
 }
 }
 }
 xhr.open('get', 'ajax.php', true);
 xhr.send();
 }
}
</script>
</head>
<body>
 <input type="button" value="獲取同域下內(nèi)容" id="btn" />
</body>
</html>

我們先看一下同域下的請(qǐng)求

我們?cè)贖TML5/a下建一個(gè)php文件,返回'hello';

ajax.php

這時(shí)候我們?cè)诖蜷_當(dāng)前頁面 http://www.a.com/7.ajax.html ,點(diǎn)擊按鈕我們發(fā)現(xiàn)請(qǐng)求到了數(shù)據(jù);
http://www.a.com/7.ajax.html

http://www.a.com/7.ajax.html

但是如果跨域的話,即你所請(qǐng)求的數(shù)據(jù)和當(dāng)前文件不在一個(gè)域下面,這樣的話就會(huì)產(chǎn)生跨域請(qǐng)求,通常在這種情況下就會(huì)禁止你去訪問

例如我們現(xiàn)在將剛才在HTML5/a文件夾下的ajax.php文件放到b文件夾下

這時(shí)候點(diǎn)擊后我們發(fā)現(xiàn)請(qǐng)求報(bào)錯(cuò)了,意思是跨域請(qǐng)求受到了限制

跨域請(qǐng)求受到了限制

這時(shí)候我們需要后端配合,你需要告訴后端在輸出的時(shí)候加一個(gè)”Access-Control-Allow-Origin”頭信息
比如說:如圖,意思只要是這個(gè)域名的跨域請(qǐng)求就不受跨域策略的影響

允許訪問的源

這時(shí)候我點(diǎn)擊的時(shí)候,就可以正常獲取跨域的數(shù)據(jù)了

如果你想兼容IE需要

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ajax跨域請(qǐng)求</title>
<script>
window.onload = function() { 
 /*
 在標(biāo)準(zhǔn)瀏覽器下,XMLHttpRequest對(duì)象已經(jīng)是升級(jí)版本,支持了更多的特性,可以跨域了
 但是,如果想實(shí)現(xiàn)跨域請(qǐng)求,還需要后端的相關(guān)配合才可以
 XMLHttpRequest : 增加很多功能,他也不推薦使用onreadystatechange這個(gè)事件來監(jiān)聽,推薦使用onload

 */
 var oBtn = document.getElementById('btn');
 oBtn.onclick = function() {
 // 這是標(biāo)準(zhǔn)瀏覽器寫法
 var xhr = new XMLHttpRequest();
 xhr.onreadystatechange = function() {
 if (xhr.readyState == 4) {
 if (xhr.status == 200) {
 alert(xhr.responseText);
 }
 }
 }
 xhr.open('get', 'http://www.b.com/ajax.php', true);
 xhr.send();
 /*
 如果你想兼容IE瀏覽器,可以特地為IE做兼容,忽略IE6
 XDomainRequest : IE如果想實(shí)現(xiàn)跨域請(qǐng)求,則需要使用這個(gè)對(duì)象去實(shí)現(xiàn)
 var oXDomainRequest = new XDomainRequest();
 oXDomainRequest.onload = function() {
 alert(this.responseText);
 }
 oXDomainRequest.open('get', 'http://www.b.com/ajax.php', true);
 oXDomainRequest.send();
 */
 }
}
</script>
</head>

<body>
 <input type="button" value="獲取同域下內(nèi)容" id="btn" />
</body>
</html>

關(guān)于IE,詳情請(qǐng)?jiān)L問 https://msdn.microsoft.com/en-us/library/cc288060(VS.85).aspx
Ajax最新標(biāo)準(zhǔn)請(qǐng)?jiān)L問 https://www.w3.org/TR/XMLHttpRequest2/

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

法库县| 仙游县| 唐河县| 乌拉特中旗| 巨鹿县| 长顺县| 东方市| 昌宁县| 新田县| 绍兴市| 景泰县| 沐川县| 平定县| 永福县| 汉寿县| 台东县| 吉水县| 龙江县| 米易县| 吉林市| 鹿邑县| 临潭县| 井冈山市| 武安市| 安图县| 竹山县| 遂平县| 聂拉木县| 万荣县| 白沙| 通河县| 涿鹿县| 吉林市| 博客| 沽源县| 沁水县| 司法| 桓仁| 建始县| 建德市| 山东省|