欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Ajax如何進行跨域請求?Ajax跨域請求的原理

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

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

下面我們在本地建兩個站點演示一下

第一步首先我們在本地搭建好一個Apache服務(wù)器;下載地址;
第二步服務(wù)器配置好以后,在本地配置好兩個虛擬的域名;
第三步我們在C盤建一個文件夾命名為”HTML5”;
第四步找到Apache虛擬主機的配置文件,然后打開配置文件

Apache虛擬主機的配置文件

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

修改Apache虛擬主機的配置文件

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

修改一下host文件

我們在HTML5/a文件夾下建一個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)建一個ajax對象
 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>

我們先看一下同域下的請求

我們在HTML5/a下建一個php文件,返回'hello';

ajax.php

這時候我們在打開當前頁面 http://www.a.com/7.ajax.html ,點擊按鈕我們發(fā)現(xiàn)請求到了數(shù)據(jù);
http://www.a.com/7.ajax.html

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

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

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

這時候點擊后我們發(fā)現(xiàn)請求報錯了,意思是跨域請求受到了限制

跨域請求受到了限制

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

允許訪問的源

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

如果你想兼容IE需要

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

 */
 var oBtn = document.getElementById('btn');
 oBtn.onclick = function() {
 // 這是標準瀏覽器寫法
 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如果想實現(xiàn)跨域請求,則需要使用這個對象去實現(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,詳情請訪問 https://msdn.microsoft.com/en-us/library/cc288060(VS.85).aspx
Ajax最新標準請訪問 https://www.w3.org/TR/XMLHttpRequest2/

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

相關(guān)文章

  • Ajax實現(xiàn)城市二級聯(lián)動(一)

    Ajax實現(xiàn)城市二級聯(lián)動(一)

    這篇文章主要為大家詳細介紹了Ajax實現(xiàn)城市二級聯(lián)動的相關(guān)資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • 無框架 Ajax分頁(原創(chuàng))

    無框架 Ajax分頁(原創(chuàng))

    最近想做一個Ajax的功能,網(wǎng)上一搜幾乎全是基于某某框架的Ajax分頁,要么需給頁面加上<scriptManager></scriptManager>,要么需引入某dll,要么需使用類似于jquery的框架。
    2009-08-08
  • js對ajax返回數(shù)組的處理介紹

    js對ajax返回數(shù)組的處理介紹

    本篇文章主要是對js對ajax返回數(shù)組的處理進行了詳細的介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-02-02
  • ajax傳遞多個參數(shù)具體實現(xiàn)

    ajax傳遞多個參數(shù)具體實現(xiàn)

    在使用ajax過程中,傳遞參數(shù)是在所難免的尤其在特殊情況下傳遞多個參數(shù),下面與大家分享下具體的是實現(xiàn)方法,感興趣的朋友可以參考下哈
    2013-05-05
  • 圖文解析AJAX的原理

    圖文解析AJAX的原理

    Ajax的工作原理相當于在用戶和服務(wù)器之間加了—個中間層(AJAX引擎),使用戶操作與服務(wù)器響應(yīng)異步化。網(wǎng)上關(guān)于介紹ajax的原理有很多,本文將通過圖文的形式給大家更直接明了的介紹,有需要的可以參考學習。
    2016-08-08
  • jQuery Validator驗證Ajax提交表單的方法和Ajax傳參的方法

    jQuery Validator驗證Ajax提交表單的方法和Ajax傳參的方法

    這篇文章主要介紹了jQuery Validator驗證Ajax提交表單的方法和Ajax傳參的方法,在文中還給大家提到了jquery .ajax提交表單的寫法,具體實例代碼大家參考下本文
    2017-08-08
  • ajax用json實現(xiàn)數(shù)據(jù)傳輸

    ajax用json實現(xiàn)數(shù)據(jù)傳輸

    本文主要介紹了ajax用json實現(xiàn)數(shù)據(jù)傳輸?shù)姆椒?,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • Ajax加載菊花loding效果

    Ajax加載菊花loding效果

    這篇文章主要介紹了Ajax加載菊花loding效果的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • AJAX 緩存問題的兩種解決方法(IE)

    AJAX 緩存問題的兩種解決方法(IE)

    ajax 清除緩存的兩種方法
    2007-10-10
  • ajax三級聯(lián)動實現(xiàn)代碼

    ajax三級聯(lián)動實現(xiàn)代碼

    這篇文章主要為大家詳細介紹了ajax三級聯(lián)動的實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05

最新評論