使用axios上传数据(包括其中的一些坑)

本文介绍了Axios这一基于Promise的HTTP库,详细解释了如何使用Axios进行GET和POST请求,包括参数传递的方式及配置选项。同时展示了如何处理并发请求,并提供了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

axios,是有一个基于es6中的promise开发的一个http库,他的主要功能就是向服务端请求和发送数据,promise可以简单的理解为只有三种状态,即pending(进行)->fulfiled(成功)和pending(进行)->rejected(失败)。
因此,我们在调用完成之后,在末尾总是需要加上then()和catch(),他们分别表示成功和失败之后所做的动作。
与jquery中的ajax不同的是,axios的get请求在附带参数发送的时候,需要带上一个params对象。因此,总结如下:
get请求:
axios.get('url',{
    params:{
        data:data  即所需要上传的参数
    }
}).then((response)=>{

}).catch((error)=>{

})

post请求(和jquery的ajax相差不大,无非最明显的就是继承的promise) :
axios.post('url',{
    data:data  即所需要上传的参数 
}).then((response)=>{

}).catch((error)=>{

})

axios也可以通过传递相关配置来创建http请求:
axios({
    method:'',
    url:'',
    data:{},
})

axios还支持多个并发请求(用all方法):

getUserAccount(){
    return axios.get('url');
}

getUserPassword(){
    return axios.get('url');
}

axios.all([getUserAccount(),getUserPassword]).then(axios.spread((acct,perms)=>{
    //两个请求现在都已执行完毕
}))

### 如何在 HTML 中使用 Axios 发起 HTTP 请求 为了在纯 HTML 项目中集成 Axios 并发起 HTTP 请求,首先需要确保 Axios 已经被正确加载到项目环境中。以下是具体实现方法: #### 加载 Axios 库 可以直接通过 `<script>` 标签引入 Axios CDN 来快速开始[^2]。 ```html <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script> ``` 这一步骤允许开发者无需额外配置即可立即使用 Axios 功能。 #### 编写 JavaScript 代码发起请求 一旦 Axios 被成功加载,在页面中的 `<script>` 部分编写如下所示的 JavaScript 代码可以完成基本的数据请求操作[^4]。 对于 **GET 请求**: ```javascript document.getElementById('get-data').addEventListener('click', function() { axios.get('https://jsonplaceholder.typicode.com/posts') .then(function (response) { console.log(response.data); document.body.innerHTML += "<pre>" + JSON.stringify(response.data, null, 2) + "</pre>"; }) .catch(function (error) { console.error(error); }); }); ``` 上述代码展示了当点击按钮时触发 GET 请求的过程,并将返回的结果打印至控制台以及追加到网页主体内显示给用户查看。 而对于 **POST 请求**, 则需指定要提交的数据对象作为第二个参数传递给 `post()` 方法: ```javascript document.getElementById('send-post').addEventListener('click', function() { const postData = { title: 'foo', body: 'bar', userId: 1 }; axios.post('https://jsonplaceholder.typicode.com/posts', postData) .then(function (response) { console.log(response.data); document.body.innerHTML += "<p>Post request succeeded!</p>"; }) .catch(function (error) { console.error(error); }); }); ``` 此段脚本会在按下相应按钮后向目标 URL 提交 POST 请求并将新创建的文章信息发送出去;如果请求成功,则会更新页面告知用户操作已完成。 #### 处理响应数据 无论是哪种类型的请求,都可以利用 `.then()` 方法链来捕获来自服务器端的成功响应,并对其进行进一步处理。而遇到错误情况则可通过 `.catch()` 捕捉异常并适当反馈给前端使用者[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值