1. 程式人生 > >原生JS封裝AJAX函式

原生JS封裝AJAX函式

AJAX(Asynchronous Javascript And XML)非同步操作XML(JSON)

function output(data){
            console.log(JSON.parse(data));
        } 
        // 一個簡單的回撥函式,用來測試是否接受到資料
        function ajax(method,url,callback,data,flag){
            // method 請求方法 url請求地址 callback回撥函式 data請求資料  flag(true為非同步,false同步)
            var
xhr = null; if(window.XMLHttpRequest){ xhr = new XMLHttpRequest; }else{ xhr = new ActiveXObject(); } xhr.onreadystatechange = function(){ if(xhr.readyState == 4){ // readyState :0 未呼叫send; 1 讀取中,正在傳送; 2 已讀取,send方法執行完成,接收到全部資料; 3 正在解析; 4 解析完成
if(xhr.status == 200){ callback(xhr.responseText); // console.log(xhr.getResponseHeader('date')); // console.log(xhr.getResponseHeader('server')); 返回 值指定的首部的串值 // console.log(xhr.getAllResponseHeaders());將http請求的所有響應首部作為鍵值對返回
// console.log(xhr.responseXML);獲得XML形式的響應資料 // console.log(xhr.statusText);伺服器返回的狀態文字資訊 } } } method = method.toUpperCase(); if(method == 'GET'){ // get方法 瀏覽器中存在快取資料,新增時間戳可以避免瀏覽器中呼叫換快取資料 var date = new Date(); var timer = date.getTime(); xhr.open('get',url + '?'+ data +'&timer=' + timer,flag); // 傳送資料在open函式中 xhr.send(); }else if(method == 'POST'){ xhr.open('post',url,flag); xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded'); // application/x-www-form-urlencoded 傳送前編碼所有字元 // multipart/form-data 不用編碼,上傳檔案的表單,必須使用這個值 xhr.send(data); // 傳送資料在send函式中 } } ajax('get','getNews.php',output,'',true);

相關推薦

原生JS封裝AJAX函式

AJAX(Asynchronous Javascript And XML)非同步操作XML(JSON) function output(data){ console.log(JSON.parse(data)); }

原生JS封裝Ajax

tex urlencode new text repl ons xmlhttp tolower 字符 function json2url(json){   //json參數轉字符串   json.t=‘‘+Math.random();   json.t=json.t.rep

原生Js封裝ajax方法

() www toupper -type get data function form encodeuri // ajax封裝function ajax(options) { /** * 傳入方式默認為對象 * */ options = opti

原生JS封裝ajax以及request

一、封裝原生的xhr為ajax類 xhr以及用法見之前的文章 1、根據url確定請求的頭部以及別的資訊。 var _headerConfig = {}; if(url.indexOf('getcaptcha') !== -1) { _

如何用原生JS封裝Ajax

編寫Ajax的四個步驟: 1、建立Ajax物件; ActiveXObject("Microsoft.XMLHTTP") XMLHttpRequest()//IE7+, Firefox, Chrome, Opera, Safari 2、傳送請求(準備資料,真正傳送); s

原生jsajax的請求函式封裝

    // 請求方式 // 請求地址 // 請求引數 // 返回值 <script> // 請求方式 // 請求地址 // 請求引數 // 返回值 function ajaxTools(pattern,url,parameter,func){ //

Ajax基礎之原生js封裝

          既然要經常用到Ajax請求,封裝函式就很必要了,下面栗子的js程式碼,我們來進行封裝。 window.onload = function() { var oBtn = document.getElementById('bt

原生jsajax請求簡單封裝

小總結:  function ajax({url,type,data,dataType}){ return new Promise(function(open,err){ //1. 建立xhr物件 var xhr=new XMLHttpRequest(); /

原生JS封裝變速移動函式

思想:如果當前位置為now,目標距離為aim,那麼每次移動的距離step為(aim-now)/10,如果step大於0,則想上取整,step=Math.ceil(step);反之則向下取整,step=Math.floor(step); 程式碼如下: //變速移動函式封裝 function

JavaScript:使用原生JS封裝一個ajax相容性方法

ajax請求過程: 需要有個裝置的支援,就是瀏覽器,沒瀏覽器ajax是發不出去的。 需要有一個ajax物件。 規定請求的方式,獲取誰家的資料。 ajax.open(method,url,true)初始化請求方式、請求資料地址、選擇非同步(true)還是同步(fal

ajax總結(四):原生js封裝a和jQurey版ajax介紹

一.為什麼要封裝? 發現很多地方都要用ajax請求,但是大部分程式碼都是一樣的,所以根據封裝的思想,相同的程式碼封裝成函式,在需要用的地方來呼叫,這樣會很方便. 二.js封裝ajax過程: 1.先了解結構程式碼和後臺程式碼: 結構: 後臺: 3.開始封裝函式

自己做工具--用原生js封裝一個AJAX外掛

採用面向物件的思想封裝,相容get/post方式 1.get和post區別 (1)get方式通過url位址列傳遞引數,post通過表單形式傳遞資料 (2)傳輸的資料大小,get方式:普通瀏覽器只能傳輸2K資料,chrome瀏覽器傳輸8K,post方式:原則上不受限制,但

利用原生js封裝一個ajax api(一)

此係列文章主要分享一下如何利用原生js,自己封裝一個ajax api。本篇文章先來為此做一些前提準備,瞭解一下ajax請求少不了的XMLHttpRequest類。 瀏覽器在XMLHttpRequest類上定義了他們的HTTP API。 這個類的每一個例

使用原生js封裝ajax(相容jsonp)

/* 封裝ajax函式 * @param {string}opt.type http連線的方式,包括POST和GET兩種方式 * @param {string}opt.url 傳送請求的url

原生jsajax封裝

!function() { $z = {}; $z.isEmpty = function(arg) { return Boolean(arg === "" || arg === undefined || arg === null)

原生js實現Ajax方法及promise封裝

/* 1. open(method, url, async) 方法需要三個引數:   method:傳送請求所使用的方法(GET或POST);與POST相比,GET更簡單也更快,並且在大部分情況下都能用;然而,在以下情況中,請使用POST請求: 無法使用快取檔案

原生js封裝ajax請求

function ajax(json){     var xhr = null;     if(window.XMLHttpRequest){         xhr = new XMLHttpRequest();     }else{         xhr = new A

使用原生JS封裝Tap事件,解決移動端300ms延遲

itl dia can 開發 閉包 tcl type 移動端 com 為了防止誤操作,移動端iOS操作系統針對原生click事件做了300ms的延遲,這在一定程度上影響了我們的使用體驗。 GitHub項目地址:https://github.com/Simon

使用原生js封裝webapp滑動效果(慣性滑動、滑動回彈)

pla 手指 測試 距離 ack cti 時間 .proto start PC 移動端兼容 IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+ 慣性助動,滑動回彈 門面模式 window.onload = function() { /*測試

原生js封裝tap

type add 產生 tlist 移動 listener als lba false // tap事件封裝function tap(obj, callBack){ if(typeof obj != ‘object‘) return; // 變量 var