码迷,mamicode.com
首页 > Web开发 > 详细

ajax与fetch的用法

时间:2018-01-18 18:03:18      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:timeout   ogr   enc   fetch   time   art   plain   res   content   

// 传统ajax用法
var xhr = new XMLHttpRequest();
xhr.responseType = ‘json‘;
xhr.timeout = 2000;
console.log(xhr.readyState);//0
xhr.open(‘GET‘, url);
console.log(xhr.readyState);//1
xhr.onloadstart = function (e) {
    xhr.abort();
    console.log(e);
};
xhr.onprogress = function (e) {
    console.log(xhr.readyState);//3
    console.log(e);
};
xhr.onload = function(res) {
    console.log(res);
    console.log(xhr.readyState);//4
};
xhr.onerror = function(err) {
    console.log(err);
};
xhr.ontimeout = function (e) {
    console.log(e);
};
xhr.onabort = function(e){
    console.log(e);
};
xhr.onloaded = function(e){
    console.log(e);
};
xhr.send();

// 传统ajax用法
function req(url, data, callback) {
    var xhr = new XMLHttpRequest();
    xhr.open(‘POST‘, url);
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4 && xhr.status == 200) {
            var res = JSON.parse(request.responseText);
            callback(res);
        }
    };
    // post
    xhr.setRequestHeader(‘Content-Type‘, ‘application/x-www-form-urlencoded‘);
    xhr.send(data);
    // get
    xhr.setRequestHeader("Content-Type", "text/xml;charset=utf-8");
    xhr.send(null);
}
req(url, data, callback());

// 替代ajax的fetch
fetch(‘/users.json‘, {
    method: ‘POST‘,
    body: data,
    mode: ‘cors‘,
    redirect: ‘follow‘,
    headers: new Headers({
        ‘Content-Type‘: ‘text/plain‘
    })
}).then(function(res) { 
    console.log(res);
}).then(function(res) {
    console.log(res);
}).catch(function (err) {
    console.log(err);
});

// 使用async,await的fetch
async function req(url, data) {
    try {
        let response = await fetch(url, data);
        let data = await response.json();
        console.log(data);
    }
    catch (err) {
        console.log(err);
    }
}
req(‘https://www.baidu.com‘, data);

  

ajax与fetch的用法

标签:timeout   ogr   enc   fetch   time   art   plain   res   content   

原文地址:https://www.cnblogs.com/huangtonghui/p/8311476.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!