Ajax的Get和Post请求封装

// ajax的get请求的封装



  ajaxGet({
    url:"http://10.11.55.86:3000/login",
    data:{
      username: "admin1",
      password: 12345
    },
    success: function(xhr){
      const res = JSON.parse(xhr.responseText);
      if( res.code === 0 ){
        console.log("登录成功,跳转到首页")
      }else{
        alert(res.msg);
        console.log(res.msg)
        console.log("表单已被清空,请重新输入相关信息")
      }
    },
    error:function(code){
      console.log("请求失败了", code)
    }
  });

  // 函数定义时,接收数据
  // 函数执行时,发送数据


  function ajaxGet( {url, data={}, success, error} ){
    // 解析请求时要携带的数据
    let str = "";
    for(let i in data){
      str += `${i}=${data[i]}&`;
    }
    // 拼接到url
    url += "?" + str.slice(0,-1);
    // 开启ajax
    const xhr = new XMLHttpRequest();
    xhr.open("get", url);
    xhr.send();
    xhr.onload = function(){
      if(xhr.status === 200){
        // 请求成功,执行成功功能
        success(xhr);
      }else{
        // 请求失败,执行失败功能
        error(xhr.status);
      }
    }
  }
const url = "http://10.11.55.86:3000/adduser";

  // token
  // uName:用户名
  // tel:手机号,登录账号
  // 密码为手机号后6位

  const o = JSON.parse(localStorage.getItem("userData")) || {};

  ajaxPost({
    url,
    data:{
      token: o.token,
      tel:"17600901917",
      uName:"张三三"
    },
    success(xhr){
      console.log(xhr.responseText);
    }
  });


  function ajaxPost( {url, data={}, success, error} ){
    let str = "";
    for(let i in data){
      str += `${i}=${data[i]}&`;
    }
    const xhr = new XMLHttpRequest;
    // 1. open的第一个参数:post
    xhr.open("post", url, true);
    // 2. 修改请求头信息中的content-type类型
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    // 3. 发送的数据的位置:不再是url后了,而是在send的参数内
    // 名=值&名=值
    xhr.send(str.slice(0, -1));
    xhr.onload = function(){
      if(xhr.status === 200){
        success(xhr);
      }else{
        error(xhr.status);
      }
    }
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值