美文网首页
手写原生ajax

手写原生ajax

作者: 阿亮2019 | 来源:发表于2018-05-17 22:31 被阅读48次

重要参考
ajax与XMLHttpRequest
阮一峰 XMLHttpRequest Level 2 使用指南

  1. 手写 原生js实现ajax请求
const xhr = new XMLHttpRequest();
// 注意这里其实是可以用四三个参数的,
// true表示异步请求
// false表示同步请求,
xhr.open('GET', 'http://www.zhengshengliang.com:9999/'); 

xhr.onreadystatechange = () => {
    if (xhr.readyState === 4) { // 注意readyState大写
        console.log('请求都相应完毕了');
        if (xhr.status >= 200 && xhr.status < 300) {
          console.log('相应成功');
          const res = xhr.responseText; // 你才返回对象,你全家才返回对象 作为http的第四部分,返回的永远是字符串
          console.log(typeof res); // "string"
          
          let obj = window.JSON.parse(res);
        } else if (xhr.status >= 400) {
           console.log('相应失败');
        }
    }
}

xhr.ontimeout = (e) => {
  alert('请求超时了');
}

xhr.timeout = 3000; // 3000ms超时
xhr.send();

// 若为异步(true),则先打印1,后打印请求内容
// 若为同步(false),则先打印请求内容,后打印1
console.log(1); 

  1. json 和 js的区别
    json是一门语言,javascript也是一门语言(发明者Brendan Eich 布兰登·艾克)。json(发明者道格拉斯·克罗克福特 Douglas Crockford)是抄袭JavaScript的。

  2. JSON没有抄袭 js中的function 和 undefined

  3. JSON的字符串首尾必须是 ""

https://www.json.org/ 火车图
"leon" 是json
null 是json
{'name': leon} 不是json 因为首尾没有双引号

相关文章

  • 自己动手封装AJAX

    一、手写AJAX 首先我们先用原生JS手写一个AJAX: 这是一个POST请求的AJAX,可以通过修改 open ...

  • 手写原生ajax

    重要参考ajax与XMLHttpRequest阮一峰 XMLHttpRequest Level 2 使用指南 手写...

  • 搜狗面试

    原型链上手写事件,手写原生js实现ajax事件,jsonp实现原理,阻止事件IE冒泡代码,事件捕获、处理,冒泡代码...

  • js 异步系列(1) -发展

    ajax 最早为了实现局部请求无刷新,有了ajax的概念。在原生js是时代,请求数据都需要自己手写一个ajax。现...

  • ajax和跨域的一些问题

    简单的总结下ajax和跨域问题。 手写原生ajax算是比较高频的面试题了,目的就是看你是否明白其原理。首先是XML...

  • Ajax

    标签: Ajax 正文 一、实现一个原生Ajax 二、Ajax状态 三、将原生的 ajax 封装成 promise

  • js和jq的ajax调用

    原生ajax jQuery的ajax

  • 面试 | Ajax进阶---JQuery中的Ajax

    我们都知道在原生js中,需要使用Ajax异步请求,就必须要手写一段获得XMLHttpRequest对象的函数,开始...

  • Ajax跨域总结

    问题 1、手写一个原生ajax 2、什么是跨域,如何解决 知识点 1、XMLHttpRequest IE低版本使用...

  • ajax

    记录一下第一次面试的经历,面试官叫我手写封装一个ajax 当时没怎么看过原生ajax,当场gg 回宿舍后自己查资料...

网友评论

      本文标题:手写原生ajax

      本文链接:https://www.haomeiwen.com/subject/pgbidftx.html