原生js写ajax-demo

Posted xixiaoxi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原生js写ajax-demo相关的知识,希望对你有一定的参考价值。

现在多数的请求基本上都是使用axios,那么有时候面试的时候可能会遇见是否会用原生js写ajax,其实工作中,我们并不会使用自己原生手写的,因为存在很多问题,我门自己可能都想不到,所以这里我简单的写了下原生的ajax。

function myAjax(options) {
      let { url, type, data, onsuccess } = options
      if (type.toLowerCase() === ‘get‘ && data) {
        //data 传进来的需要序列化,这里默认已经序列化
        //...
        url = url + ‘?‘ + data
      }
      var xhr = new XMLHttpRequest()
      xhr.open(type, url)
      //这里只是模拟了成功以后的函数,需要的话还可以模拟错误等...
      xhr.onload = function () {
        onsuccess(xhr.responseText)
      }
      if (type.toLowerCase() === ‘post‘) {
        xhr.setRequestHeader(‘content-type‘, ‘application/x-www-form-urlencoded‘)
        xhr.send(data)
      } else {
        xhr.send()
      }

    }

    //get调用
    myAjax({
      url: ‘./index.json‘,
      type: ‘get‘,
      data: ‘name=zs‘,
      onsuccess: function (res) {
        console.log(res);
      }
    })
    //post调用,这里只是模拟一下,没有写接口,http报405错
    myAjax({
      url: ‘./index.json‘,
      type: ‘post‘,
      data: JSON.stringify({ name: 1 }),
      onsuccess: function (res) {
        console.log(res);
      }
    })

     //index.json中只是随便写了个json对象
      {
           "name":"zs"
      }

以上是关于原生js写ajax-demo的主要内容,如果未能解决你的问题,请参考以下文章

Atom编辑器折腾记_(15)JS代码片段补全(插件:javascript-snippets)

js经常用到的代码片段

Ajax-Demo

奇舞js笔记——第0课——如何写好原生js代码

原生js如何绑定a连接点击事件?

js原生跨域--用script标签实现