解析$.ajax():10个关键参数详解

$.ajax()的常用参数

type: 类型: String 请求方式 (“POST“ 或 “GET“), 默认为 “GET“。(没有methods参数)

url: 类型: String (默认: 当前页面地址)

data:前端发送到后台的数据,可以是json对象,也可以是json形式的字符串。
    注意:后台接受的参数形式,不支持的数据类型,发送不会成功
    {“type“:1,“phone“:phoneCon,“pwd“:pwdCon}
    JSON.stringify(  {“type“:1,“phone“:phoneCon,“pwd“:pwdCon}  ),

dataType: 后台返回的数据的类型,默认“text“
    “text“: 返回纯文本字符串。
    “json“:返回json对象。
    “script“: 把响应的结果当作 JavaScript 执行。
    如果dataType是“json“,而后天返回的是字符串,则数据通过error对应的函数返回数据

error: 请求失败时调用此函数。

success: 请求成功后的回调函数 ajax不一定有返回的信息,如:给数据库添加留言,可以不需要返回信息

complete: 请求完成后回调函数

beforeSend: 请求发送前的回调函数,用来修改请求发送前jqXHR(在jQuery 1.4.x的中,XMLHttpRequest)对象,此功能用来设置自定义 HTTP 头信息,等等。该jqXHR和设置对象作为参数传递。

timeout: 类型: Number 设置请求超时时间(毫秒)

cache: 类型: Boolean    是否缓存        默认: true, dataType为“script“和“jsonp“时默认为false
    注意: 设置cache为 false将在 HEAD和GET请求中正常工作。它的工作原理是在GET请求参数中附加“_={timestamp}“(译者注:时间戳)。

jsonp: 在一个jsonp请求中重写回调函数的名字。这个值用来替代在“callback=?“这种GET或POST请求中URL参数里的“callback“部分

async:是否异步请求,默认true
    false(同步请求时),可以再ajax内进行赋值,不会出现赋值顺序错误的问题
    ajax外部变量,获取ajax内部的值时,必须是同步请求,如:将ajax内的值作为函数的返回参数

ajax的请求过程

1、新建ajax对象(IE6不兼容)   如:xhr = new XMLHttpRequest();
    IE6下,Ajax对象的兼容方法
        方法一:var xhr = null;
            try {    xhr = new XMLHttpRequest();    }
            catch (e) {    xhr = new ActiveXObject(‘Microsoft.XMLHTTP‘);    }
        方法二:var xhr = null;
            if (window.XMLHttpRequest) {    xhr = new XMLHttpRequest();    }
            else {    xhr = new ActiveXObject(‘Microsoft.XMLHTTP‘);    }

2、发送请求的准备工作       通过get、post发送某个信息,但是这一步无法显示出来,相当于网址,post方式,文件信息地址在xhr.send();中
    如:xhr.open(‘get‘,‘1.php‘,true);         xhr.open(‘post‘,‘2.post.php‘,true);
    1.打开方式:get、post、request
     2.地址(接口)
        静态地址,如:xhr.open(‘get‘,‘1.txt‘,true);
        动态地址:如:xhr.open(‘get‘,‘1.php‘,true);
            get方式,发送数据到后台  如:xhr.open(‘get‘,‘2.get.php?username=leo&age=30&‘,true);
                1.缓存引起无法刷新:在url?后面连接一个随机数,时间轴如:xhr.open(‘get‘,‘2.get.php?username=leo&age=30&‘   new Date().getTime(),true);
                2.中文乱码无法显示:编码encodeURI     如:xhr.open(‘get‘,‘2.get.php?username=‘ encodeURI(‘刘伟‘) ‘&age=30&‘   new Date().getTime(),true);
            post方式,发送数据到后台
                1.post没有缓存问题
                2.中文无需编码
                3.数据放在send()里面作为参数传递    如:xhr.send(‘username=刘伟&age=30‘);
                    在send()前面,必须申明发送的数据类型    如:xhr.setRequestHeader(‘content-type‘, ‘application/x-www-form-urlencoded‘);
    3.是否异步
        true:异步:非阻塞 前面的代码不会影响后面代码的执行
        false:同步:阻塞 前面的代码会影响后面代码的执行   很少使用同步(除非后面的操作,需要前面的数据)

3、提交发送的请求    如:xhr.send();

4、等待服务器返回内容       返回内容为字符串,必要时需要转成对象?????
    返回正确内容的条件:1、readyState值发生改变    2、readyState属性值为4    3、status属性值为200
    onreadystatechange事件    当状态值发生改变时触发
    readyState属性:请求状态
        0    未初始化)还没有调用open()方法
        1    (载入)已调用send()方法,正在发送请求
        2    (载入完成)send()方法完成,已收到全部响应内容
        3    (解析)正在解析响应内容
        4    (完成)响应内容解析完成,可以在客户端调用了
    status属性:服务器(请求资源)的状态码(http状态码)
        1、消息(1字头)
        2、成功(2字头)  如:200    OK
        3、重定向(3字头)
        4、请求错误(4字头)
        5、服务器错误(5、6字头)
    返回的内容
        responseText:ajax返回的内容,就存在于这个属性下面,以字符串的形式

免费的API接口开放平台

  • 17
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值