axios和ajax的区别点总结

axios 和 ajax 的区别点总结

简介

在进行 AJAX(Asynchronous JavaScript and XML) 请求时,我们通常会使用 jQuery 或者原生的 XMLHttpRequest 对象进行请求。而 axios 是一个基于 Promise 的 HTTP 请求库,可以用于浏览器和 node.js 端。本文将会对比 axios 和 ajax 的区别点。

axios 和 ajax 的使用方法

在使用 axios 时,我们需要引入 axios 模块并创建 axios 对象进行请求。例如在浏览器端我们可以这样创建:

import axios from 'axios'

axios.get('/user?ID=12345')
  .then(function (response) {
    console.log(response)
  })
  .catch(function (error) {
    console.log(error)
  })

而在使用 ajax 时,通常会使用 jQuery 的 ajax 方法进行请求:

$.ajax({
  url: '/user',
  type: 'GET',
  data: { ID: 12345 },
  success: function(response) {
    console.log(response)
  },
  error: function(error) {
    console.log(error)
  }
})

axios 和 ajax 的区别点总结

  1. 底层实现不同

axios 是基于 Promise 封装的一个 HTTP 请求库,可以在浏览器和 node.js 环境下使用。axios 可以将 HTTP 请求的返回值封装到 Promise 对象中,使得我们可以方便地使用 async/await 进行网络请求。而 ajax 是基于原生的 XMLHttpRequest 对象封装的方法,只适用于浏览器环境。

  1. 跨域请求方式不同

由于浏览器的同源策略限制,我们在进行跨域请求时,需要进行一系列的处理。在使用 axios 时,我们可以方便地通过设置 withCredentials 属性来开启跨域请求。而在使用 ajax 时,我们需要在服务器端设置响应头 Access-Control-Allow-Origin: * 或者设置代理,才能进行跨域请求。

示例说明

示例一

我们通过 axios 进行一个简单的 GET 请求来获取数据:

axios.get('/api/test')
  .then(function (response) {
    console.log(response.data)
  })
  .catch(function (error) {
    console.log(error)
  })

我们通过 ajax 进行一个简单的 GET 请求来获取数据:

$.ajax({
  url: '/api/test',
  type: 'GET',
  success: function(response) {
    console.log(response)
  },
  error: function(error) {
    console.log(error)
  }
})

可以看到,在使用 axios 时,我们可以直接从 response 中获取到请求的数据;而在使用 ajax 时,需要从 response.responseText 中获取到请求的数据。

示例二

我们通过 axios 进行一个简单的 POST 请求来提交表单数据:

axios.post('/api/test', {
  name: 'test',
  age: 20
})
.then(function (response) {
  console.log(response.data)
})
.catch(function (error) {
  console.log(error)
})

我们通过 ajax 进行一个简单的 POST 请求来提交表单数据:

$.ajax({
  url: '/api/test',
  type: 'POST',
  data: {
    name: 'test',
    age: 20
  },
  success: function(response) {
    console.log(response)
  },
  error: function(error) {
    console.log(error)
  }
})

可以看到,在提交表单数据时,使用 axios 可以直接将数据传递给 post 方法进行提交;而在使用 ajax 时,需要在 data 属性中进行设置。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:axios和ajax的区别点总结 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • jQWidgets jqxTreeGrid pagerRenderer属性

    以下是关于 jQWidgets jqxTreeGrid 组件中 pagerRenderer 属性的详细攻略。 jQWidgets jqxTreeGrid pagerRenderer 属性 jQWidgets jqxTreeGrid 的 pagerRenderer 属性用于自定义 TreeGrid 控件的分页器。可以使用此属性来控制分页器的外观和行为。 语法 …

    jquery 2023年5月12日
    00
  • jquery each()源代码

    下文将详细讲解 jQuery 中的 .each() 方法及其源代码、特性、用法以及示例说明。 源代码 这是 .each() 方法的源代码: jQuery.each = function( obj, callback ) { var length, i = 0; if ( isArrayLike( obj ) ) { length = obj.length; …

    jquery 2023年5月28日
    00
  • jQuery实现字符串按指定长度加入特定内容的方法

    针对您的问题,我准备了以下的攻略: 1. 需求描述 我们需要实现一个 jQuery 方法,可以将一个字符串按指定长度分割,并在分割的每个位置加入特定的内容。 2. 解决方案 2.1 思路概述 首先,我们需要对字符串进行分割,分割长度为指定长度。然后在每个分割的位置上,都插入指定的内容。最后,我们将分割并插入内容之后的字符串返回。 注意,为了更加灵活地处理分割…

    jquery 2023年5月28日
    00
  • jQuery简单实现title提示效果示例

    下面是详细讲解“jQuery简单实现title提示效果示例”的完整攻略。 什么是jQuery简单实现title提示效果? 在网页应用中,经常需要给鼠标悬浮元素提示一些信息,如链接文字对应的链接地址。我们可以采用CSS中的属性选择器来实现,即通过”::after”等伪元素来添加提示内容,然后通过CSS样式的display和position属性来控制其显示与隐藏…

    jquery 2023年5月28日
    00
  • jQuery UI Tooltips enable()方法

    以下是关于 jQuery UI Tooltips enable() 方法的详细攻略: jQuery UI Tooltips enable() 方法 enable() 方法用于启用工具提示小部件。 语法 $(selector).tooltip("enable"); 参数 无。 示例一:启用工具提示部件 <!DOCTYPE html&g…

    jquery 2023年5月11日
    00
  • XMLHTTPRequest对象在Ajax中的用途是什么

    XMLHttpRequest对象是Ajax技术的核心之一,它是一个能够向服务器发出HTTP请求的JS对象。因此,我们可以通过使用XMLHttpRequest对象在前端与服务器进行数据交互,达到无需刷新页面的数据更新效果。下面详细讲解XMLHTTPRequest对象在Ajax中的用途。 XMLHTTPRequest对象的用途 XMLHttpRequest对象可…

    jquery 2023年5月12日
    00
  • jQWidgets jqxTabs collapse()方法

    针对“jQWidgets jqxTabs collapse()方法”的完整攻略,请参考以下内容: 概述 jqxTabs 是 jQWidgets 框架中提供的一种选项卡组件,通过该组件可以轻松地实现选项卡切换的功能。而 collapse() 方法则是该组件的一个内置方法,其中 collapse() 用于关闭当前选项卡。 方法参数 collapse() 方法的参…

    jquery 2023年5月12日
    00
  • 如何使用jQuery Mobile制作一个禁用按钮

    以下是使用jQuery Mobile制作一个禁用按钮的完整攻略: 首先,在HTML文件中引入jQuery Mobile库。可以以下代码实现: <head> <meta name="viewport" content="width=device, initial-scale=1"> <tit…

    jquery 2023年5月11日
    00
合作推广
合作推广
分享本页
返回顶部