前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript 学习-39.jQuery Ajax请求

JavaScript 学习-39.jQuery Ajax请求

作者头像
上海-悠悠
发布2022-06-02 15:40:30
1K0
发布2022-06-02 15:40:30
举报
文章被收录于专栏:从零开始学自动化测试

前言

ajax()方法

语法

代码语言:javascript
复制
$.ajax(url, options);

options常用参数:

  • async: 是否异步,默认true 异步
  • type: 请求方式get/post
  • url: 请求url地址
  • contentType: 请求头部参数
  • data: 发到服务器的数据
  • dataType: 预期服务器返回数据类型
  • success: 请求成功调用此函数
  • error: 请求失败调用此函数
  • beforeSend(XHR):发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。
  • complete(XHR, TS):请求完成后回调函数 (请求成功或失败之后均调用)。
  • cache:默认值: true,dataType 为 script 和 jsonp 时默认为 false。设置为 false 将不缓存此页面。
  • global:是否触发全局 AJAX 事件。默认值: true。设置为 false 将不会触发全局 AJAX 事件
  • ifModified:仅在服务器数据改变时获取新数据。默认值: false
  • timeout:设置请求超时时间(毫秒)。此设置将覆盖全局设置。

回调函数:

如果要处理 $.ajax() 得到的数据,则需要使用回调函数:beforeSend、error、dataFilter、success、complete。

  • beforeSend  在发送请求之前调用,并且传入一个 XMLHttpRequest 作为参数。
  • error  在请求出错时调用。传入 XMLHttpRequest 对象,描述错误类型的字符串以及一个异常对象(如果有的话)
  • dataFilter  在请求成功之后调用。传入返回的数据以及 “dataType” 参数的值。并且必须返回新的数据(可能是处理过的)传递给 success 回调函数。
  • success  当请求之后调用。传入返回后的数据,以及包含成功代码的字符串。
  • complete  当请求完成之后调用这个函数,无论成功或失败。传入 XMLHttpRequest 对象,以及一个包含成功或错误代码的字符串。

访问本地数据

在本地同目录新建一个data.txt

代码语言:javascript
复制
{
    "total": 3,
    "rows": [
        {"id": 0, "name": "张三", "tel": "15002222111"},
        {"id": 1, "name": "李四", "tel": "15002222111"},
        {"id": 1, "name": "王五", "tel": "15002222333"},
    ]
}

ajax访问本地数据

代码语言:javascript
复制
    $.ajax({
        url: 'data.txt',
        type: 'get',
        success: function (result, status, xhr) {
            console.log('请求成功:');
            console.log(result);
        },
        error: function (xhr, status, error) {
            console.log('请求失败:')
            console.log(status)
            console.log(error)
        }
    })

访问本地txt文件,返回的是字符串格式

访问网络接口请求

访问get请求接口示例 接口url地址:  /api/table/ 请求方式: get 接口返回

代码语言:javascript
复制
     {
        "total": 3,
        "rows": [
            {"id": 0, "name": "张三", "tel": "15002222111"},
            {"id": 1, "name": "李四", "tel": "15002222111"},
            {"id": 1, "name": "王五", "tel": "15002222333"},
        ]}

get请求示例

代码语言:javascript
复制
<script>
    $.ajax({
        url: '/api/table/',
        type: 'get',
        success: function (result, status, xhr) {
            console.log('请求成功:');
            console.log(result);
        },
        error: function (xhr, status, error) {
            console.log('请求失败')
        }
    })
</script>

运行结果

success 回调函数

ajax 发送请求后,接口返回status状态有五种:”success”, “notmodified”, “error”, “timeout”, or “parsererror” success 是指http协议状态码小于300的请求

  • result   接口返回body内容
  • status  返回状态,这里是”success”
  • xhr    XMLHttpRequest 对象
代码语言:javascript
复制
   $.ajax({
        url: '/api/table/',
        type: 'get',
        success: function (result, status, xhr) {
            console.log('请求成功:');
            console.log(result);
            console.log(status);
            console.log(xhr);
        },
        error: function () {
            console.log('请求失败')
        }
    })

返回结果

接口返回的是json数据,这里的result参数,已经解析成对象了,可以直接取值

代码语言:javascript
复制
    $.ajax({
        url: '/api/table/',
        type: 'get',
        success: function (result, status, xhr) {
            console.log('请求成功:');
            console.log(result);
            console.log(status);
            // result 对象取值
            console.log(result.total);
            console.log(result.rows);
            console.log(result.rows[0]);
        },
        error: function () {
            console.log('请求失败')
        }
    })

error 回调函数

接口状态码大于300的都是error

  • xhr XMLHttpRequest 对象
  • status 接口返回状态
  • error 状态码描述内容

示例

代码语言:javascript
复制
    $.ajax({
        url: '/api/table/',
        type: 'get',
        success: function (result, status, xhr) {
            console.log('请求成功:');
            console.log(result);
        },
        error: function (xhr, status, error) {
            console.log('请求失败:')
            console.log(status)
            console.log(error)
        }
    })

当接口状态码301时:Moved Permanently

当接口状态码404时:Not Found

当接口状态码500时:Internal Server Error

2022年第 11 期《python接口web自动化+测试开发》课程,6月5号开学!

《JMeter 性能测试实战》课程6月15号开学

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • ajax()方法
  • 回调函数:
  • 访问本地数据
  • 访问网络接口请求
  • success 回调函数
  • error 回调函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档