JavaScript-Ajax常用库

jQuery 中的 AJAX

jQuery 中有一套专门针对 AJAX 的封装,功能十分完善。
参考网址:jQuery 参考手册 - Ajax (w3school.com.cn)

$.ajax() 方法(传入对象格式参数)

常用选项参数 说明
url 请求地址
type 请求方法,默认为 get
dataType 服务端响应数据类型
contentType 请求体内容类型,默认 application/x-www-form-urlencoded
data 需要传递到服务端的数据
如果 GET 则通过 URL 传递,如果 POST 则通过请求体传递
timeout 请求超时时间
beforeSend (回调函数)请求发起之前触发
success (回调函数)请求成功之后触发(响应状态码 200)
error (回调函数)请求失败触发
complete (回调函数)请求完成触发(不管成功与否)

快捷请求方法

$.get(url, data, callback):GET 请求快捷方法
$.post(url, data, callback):POST 请求快捷方法

url:请求地址;data:需要传递到服务器的数据;callback:回调函数

更改与删除请求

  • put 请求,更改数据
    // 以下为拉勾教育课件内代码
    $.ajax({
      // comments为接口,接口之后要传入所需要修改的数据 id
      url: "http://localhost:3000/comments/4", 
      type: "put",
      dataType: "json",
      data: {"content": "good", "postId": 2},
      success: function (data) {
        console.log(data)  // 输出修改后的数据对象
      }
    })
  • delete 请求,删除数据
    // 以下为拉勾教育课件内代码
    $.ajax({
      url: "http://localhost:3000/comments/5",
      type: "delete",
      success: function (data) {
        console.log(data)  // 因为删除,所有输出空对象
      }
    })

Axios

Axios 是目前应用最为广泛的 AJAX 封装库。
Axios 网址:axios中文网 (axios-js.com)

Axios 库

地址:https://unpkg.com/axios/dist/axios.min.js 在 html 中使用 script 标签引入。

Axios API

可以通过向 axios() 传递相关配置来创建请求

  • axios(config) config为对象格式的配置选项
    // 以下为拉勾教育课件内代码
    axios({
      url: "/comments",
      method: "post",
      baseURL: "http://localhost:3000",
      headers: {
        "Content-Type": "application/json"
      },
      timeout: 1000,
      data: {
        "postId": 3,
        "content": "better"
      }
    })
  • axios(url, config) config 可选
    axios("http://localhost:3000/posts", {
      params: {
        id: 1
      }
    })
常用配置项 说明
url 用于请求的服务器 URL,必需
method 创建请求时使用的方法
baseURL 传递相对 URL 前缀,将自动加在 url 前面
headers 即将被发送的自定义请求头
params 即将与请求一起发送的 URL 参数
data 作为请求主体被发送的数据
timeout 指定请求超时的毫秒数(0 表示无超时时间)
responseType 表示服务器响应的数据类型,默认 “json”

then 和 catch

axios() 
  .then(function (response) { 
    // 正常请求的响应信息对象 response 
  }) 
  .catch(function (error) { 
    //捕获错误 
  })

全局配置默认值

可以指定将被用在各个请求的配置默认值,比如:
axios.defaults.baseURL = 'https://api.example.com';
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

拦截器

拦截器可以在请求或响应被 then 或 catch 处理前拦截它们。


可以通过添加请求拦截器在发现请求之前更改全局的默认配置:

    // 使用拦截器,对请求进行拦截处理
    axios.interceptors.request.use(function (config) {
      config.params = {
        id: 2
      }
      config.baseURL = "http://localhost:3000"
      return config
    })

可以通过响应拦截器对全局的响应数据进行修改,直接获取想要的数据:

    // 对响应进行拦截
    axios.interceptors.response.use(function (response) {
      return response.data;
    })

快速请求方法

  • axios.get(url[, config]) 获取数据
  • axios.post(url[, data[, config]]) 添加数据
  • axios.delete(url[, config]) 删除数据
  • axios.put(url[, data[, config]]) 更改数据
    // get 请求
    axios.get("http://localhost:3000/users?id=2")
    axios.get("http://localhost:3000/users",{
      params: {
        id: 3
      }
    })
    // post 请求
    axios.post("http://localhost:3000/users",{
      "name": "nancy",
      "age": 19,
      "class": 2
    })

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353

推荐阅读更多精彩内容

  • jQuery中的ajax方法 参考链接 http://www.w3school.com.cn/jquery/jqu...
    amanohina阅读 670评论 0 0
  • 前言 Axios是一个当前使用较为广泛,封装的功能较为完备的一个HTTP库,作为目前热门的网络请求库,学习和使用a...
    moutory阅读 2,074评论 0 1
  • AJAX 在浏览器端进行网络编程(发送请求、接收响应)的技术方案 以通过 JavaScript 直接获取服务端最新...
    Aaron胖虎阅读 279评论 0 1
  • 、 、 在相应情况下可省略。而 是必须写的。 除了 、 其它标签都有默认样式。 ★可以出现在 元素内的标签有 、 ...
    HeroMeikong阅读 316评论 0 0
  • vue-resource Vue.js是数据驱动的,这使得我们并不需要直接操作DOM,如果我们不需要使用jQuer...
    南台观芸秀阅读 417评论 0 1