亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

原生JS如何實現ajax與ajax的跨域請求實例

發布時間:2021-04-21 10:37:20 來源:億速云 閱讀:237 作者:小新 欄目:web開發

這篇文章將為大家詳細講解有關原生JS如何實現ajax與ajax的跨域請求實例,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

什么是ajax

ajax是一種在無需重新加載整個網頁的情況下,能夠更新部分網頁的技術,可以通過在后臺與服務器進行少量數據交換,使網頁實現異步更新。

一、原生JS實現ajax

第一步獲得XMLHttpRequest對象

第二步:設置狀態監聽函數

第三步:open一個連接,true是異步請求

第四部:send一個請求,可以發送一個對象和字符串,不需要傳遞數據發送null

第五步:在監聽函數中,判斷readyState=4&&status=200表示請求成功

第六步:使用responseText、responseXML接受響應數據,并使用原生JS操作DOM進行顯示

var ajax = new XMLHttpRequest();
ajax.onreadystatechange = function(){
 console.log(ajax.readyState);
 console.log(ajax.status);
 if(ajax.readyState==4 && ajax.status==200){
  console.log(ajax.responseText);
  console.log(ajax.responseXML);//返回不是XML,顯示null
  console.log(JSON.parse(ajax.responseText));
  console.log(eval("("+ajax.responseText+")"));
  }
}
ajax.open("GET","h61701.json",true);
ajax.send(null);

二、ajax的跨域請求

[跨域請求處理]由于在JS中存在同源策略。當請求不同協議名,不同端口號,不同主機名下面的文件時,將會違背同源策略,無法請求成功!需要進行跨域處理!

1、后臺PHP進行設置:

前臺無需任何設置,在后臺被請求的PHP文件中,寫入一條header。

header("Access-Control-Allow-Origin:*");//表示允許哪些域名請求這個PHP文件,*表示所有域名都允許

2、使用src屬性+JSONP實現跨域

①擁有src屬性的標簽自帶跨域功能!所以可以使用script標簽的src屬性請求后臺數據

<scriptsrc="http://127.0.0.1/json.php"type="text/javascript"charset="utf-8"></script>

②由于src在加載數據成功后,后直接將加載內容放入到script標簽中

所以,后臺直接返回JSON字符串將不能在script標簽中解析

因此,后臺應該返回給前臺一個回到函數名,并將JSON字符串作為參數傳入

后臺PHP文件中返回:

echo"callBack({$str})";

③前臺接收到返回的回到函數,將直接在script標簽中調用。因此需要聲明這樣一個回調函數,作為請求成功的回調。

function callBack(data){
  alert("請求成功");
  console.log(data);
 }

3、JQuery的ajax實現JSONP

① 在ajax請求時,設置dataType為"json"

② 后套返回時,依然需要返回回調函數。但是,ajax在發送請求時會默認使用get請求將回到函數名發給后臺,后臺可以使用$_GET['callback']取出回調函數名:

echo"{$_GET['callback']}({$str})";

③后臺返回以后,ajax依然可以用success作為成功的回調函數:

success:function(data){}

當然后臺也可以隨便返回一個回調函數名。

echo"callBack({$str})";

關于“原生JS如何實現ajax與ajax的跨域請求實例”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

双柏县| 兴山县| 驻马店市| 仲巴县| 安顺市| 全南县| 福州市| 博湖县| 麻城市| 彰化县| 高邮市| 普宁市| 泾源县| 通河县| 上饶市| 绥宁县| 合山市| 新丰县| 湄潭县| 定陶县| 阳新县| 汤阴县| 昌图县| 历史| 若尔盖县| 长白| 化州市| 胶州市| 洛浦县| 邹城市| 嘉荫县| 陆川县| 印江| 湘阴县| 手机| 连城县| 台湾省| 乐平市| 临澧县| 神农架林区| 贡觉县|