专栏首页前端开发简单的封装ajax函数

简单的封装ajax函数

//封装一个ajax函数

  // 参数约定:
    // url  必须
    // method 可选, 默认是 get
    // data 可选, 可以是字符串, 也可以是对象( 键值对 )
    // fn 处理响应回来的数据, 函数需要有参数, 即响应回来的数据

function ajax( options ){
    //定义参数
   var url=options.url,
        method=options.method || "GET",
        data=options.data || null,
        fn=options.fn || null

    //首先转换data参数
    var tmp=[];
    //如果传入的是字符串,不需要处理,如果传入的是一个键值对,转换成字符串
    if(data != null && typeof data =="object"){
        for( var k in data){
            tmp.push(k + "=" + data[k] );
        }
        data=tmp.join("&");
    }

    //开始发送ajax请求
    var xhr=new XMLHttpRequest();
    xhr.open(method,url);
    //如果请求方式是post  设置头
    if( method.toLowerCase() == "post"){
        xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    }
    xhr.onreadystatechange=function(){
        if( xhr.readyState===4 && xhr.status==200){
            if(typeof fn =="function"){
                fn( xhr.responseText );
            }
        }
    };
    xhr.send(data);
};

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 前端安全问题之-点击劫持

    游魂
  • 【JavaScript】String字符串对象下的方法

    游魂
  • [记]使用jQuery Jcrop 图像裁剪无法更换图片的坑

    游魂
  • 模糊C均值聚类算法(FCM)

    模糊聚类算法是一种基于函数最优方法的聚类算法,使用微积分计算技术求最优代价函数.在基于概率算法的聚类方法中将使用概率密度函数,为此要假定合适的模型.模糊聚类算法...

    AIHGF
  • LeNet在caffe中的实现分析

    本文主要是对Caffe中mnist数据集上训练的LeNet模型进行结构分析和可视化。 import caffe import numpy as np impor...

    Tyan
  • VaR系列(三):DCC模型估计组合VaR

    需要说明的一点是,如果我们假设所有的单个资产收益率都服从正态分布,资产组合的收益率是单个资产收益率的加权和,也服从正态分布,这种情况下,计算VaR只需要对组合的...

    量化小白
  • tflearn学习1

    我是木木酱呀
  • 大数据分析考科目三到底哪里容易被挂

    就在上周五, 也就是5月24号, 也就是本狗的阳历生日的这天, 本狗考了科目三, 结果是:“唉”, 没想到过了。用一句小时候经常听的话来讲这次的成绩就是——“一...

    Python知识大全
  • 使用Python绘制点击图、热图

    via: http://blog.csdn.net/wenyusuran/article pyHeatMap是一个使用Python生成热图的库,基本代码是我一年...

    机器学习AI算法工程
  • JavaScript正则表达式

    正则表达式是一个拆分字符串并查询相关信息的过程。 正则表达式通常被称为一个模式(pattern),是一个用简单方式描述或者匹配一系列符合某个语法规则的字符串...

    奋飛

扫码关注云+社区

领取腾讯云代金券