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

首頁 > 語言 > JavaScript > 正文

詳解自定義ajax支持跨域組件封裝

2024-05-06 15:22:00
字體:
來源:轉載
供稿:網友

Class.create()分析

仿prototype創建類繼承

var Class = {  create: function () {    var c = function () {      this.request.apply(this, arguments);    }    for (var i = 0, il = arguments.length, it; i < il; i++) {      it = arguments[i];      if (it == null) continue;      Object.extend(c.prototype, it);    }    return c;  }};Object.extend = function (tObj, sObj) {   for (var o in sObj) {    tObj[o] = sObj[o];  }  return tObj;};

ajax定義:ZIP_Ajax=Class.create();

其中create方法返回的是一個構造函數request,這里相當于var ZIP_Ajax= function(){ this.request.apply(this, arguments); }; 用對象冒充的方式在函數內部執行了一次構造的過程,相當于把構造函數任務交給了request方法,這里的this.request是ZIP_Ajax的實例的方法,而this指向的就是ZIP_Ajax的實例,apply后面的this指向的是ZIP_Ajax,最后根據new關鍵字將this才真正指向ZIP_Ajax類。有了類ZIP_Ajax的定義,接下來就可以定義其方法:

XMLHttpRequest詳解:

XMLHttpRequest不是一項技術而是一個內置于主流瀏覽器內的一個可以完全訪問http協議的對象。傳統的http請求大部分都是基于form提交請求http,然后返回一個form。XMLHttpRequest支持同步請求的同時最大的優點就是支持異步傳輸接受數據,新建一個ajax請求實際就是實例化一個XMLHttpRequest對象。簡單介紹一下主要事件及方法:

readystatechange事件:

當XMLHttpRequest發送一個http請求之后就會激發一個readystatechange事件,事件返回有五個值,0,1,2分別代表創建XMLHttpRequest、初始化完成XMLHttpRequest、發送了請求,3代表響應沒結束(即只接收到響應頭數據)4才是真正獲得完整響應。

返回的status狀態表示服務器返回的狀態碼:

常用的有200表示成功返回數據,301永久重定向,302為臨時重定向(不安全)304讀取的緩存數據400表示請求出現語法錯誤,403表示服務器拒絕請求,404表示請求網頁資源不存在,405找不到指定位置服務器,408表示請求超時,500服務器內部錯誤,505表示服務器不支持請求的http協議版本。

200-300表示成功,300-400表示重定向,400-500表示請求內容或者格式或者請求體過大導致錯誤,500+表示服務器內部錯誤

open方法:

open接收三個參數分別是請求類型(get,post,head等)、url、同步或者異步

send方法:

當請求就緒后會觸發send方法,發送的內容就是請求的數據(如果是get請求則參數為null;

請求成功之后會執行success自定義方法,其參數為返回數據;

ajax跨域:

什么是跨域?

如果兩個站點www.a.com想向www.b.com請求數據就出現了因為域名不一致導致的跨域問題。即使是域名相同,如果端口不同的話也是會存在跨域問題(這種原因js是只能袖手旁觀了)。判斷是否跨域僅僅是通過window.location.protocol+window.location.host來判斷例如http://www.baidu.com.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 青铜峡市| 甘孜县| 翼城县| 新余市| 河南省| 铜梁县| 林芝县| 永善县| 连江县| 张掖市| 襄城县| 涿州市| 嘉禾县| 沙湾县| 冕宁县| 长海县| 台山市| 兰州市| 汉沽区| 沽源县| 巴林右旗| 永嘉县| 西乌| 永兴县| 永寿县| 米林县| 崇明县| 页游| 安国市| 徐闻县| 库车县| 五河县| 乌兰县| 潞城市| 庐江县| 淳安县| 肃宁县| 义马市| 宜兰市| 信阳市| 鄂伦春自治旗|