美文网首页
2020-01-14

2020-01-14

作者: 7b7d23d16ab5 | 来源:发表于2020-01-14 10:49 被阅读0次

(转载)Vue使用axios,设置axios请求格式为form-data

原文链接:https://www.jianshu.com/p/b10454ed38ba

Cover

image

在Vue中使用axios

这个老生常谈了,还是先记录一遍,方面后面自己查。

!!! 设置form-data请求格式直接翻到后面看。

1. 安装axios

在项目下执行npm install axios
之后在main.js中,添加:

import axios from 'axios' //引入

//Vue.use(axios) axios不能用use 只能修改原型链 
Vue.prototype.$axios = axios

2. 发送GET请求

axios封装了get方法,传入请求地址和请求参数,就可以了,同样支持Promise。

//不带参数的get请求

let url = "..."
this.$axios.get(url)
.then((res) => {
    console.log(res) //返回的数据
})
.catch((err) => {
    console.log(err) //错误信息
})

不过它的参数需要写在params属性下,也就是:

//带参数的get请求

let url = "...getById"
this.$axios.get(url, {
    params: {
        id: 1
    }
})
.then((res) => {
    console.log(res) //返回的数据
})
.catch((err) => {
    console.log(err) //错误信息
})

2. 发送post请求

与上面相同,就是参数不需要写在params属性下了,即:

//带参数的post请求

let url = "...getById"
let data = {
    id: 1
}

this.$axios.post(url, data)
.then((res) => {
    console.log(res) //返回的数据
})
.catch((err) => {
    console.log(err) //错误信息
})

3. 经典写法

axios也可以用jQ的写法,不过回调函数还是Promise的写法,如:

this.$axios({
  method: 'post',
  url: '...',
  data: {
    firstName: 'Fred',
    lastName: 'Flintstone'
  }
}).then((res) => {
    console.log(res)
})

设置form-data请求格式

我用默认的post方法发送数据的时候发现后端获取不到数据,然而在network中看到参数是的确传出去的了。而且用postman测试的时候也是可以的,比较了下两个的不同发现是postman使用的是form-data格式,于是用form-data格式再次请求,发现OJBK

在查找设置请求格式的时候花了点时间,网上的方案有好几个,这个我亲测成功,发上来。

import axios from "axios"  //引入

//设置axios为form-data
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
axios.defaults.headers.get['Content-Type'] = 'application/x-www-form-urlencoded';
axios.defaults.transformRequest = [function (data) {
    let ret = ''
    for (let it in data) {
      ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
    }
    return ret
}]

//然后再修改原型链
Vue.prototype.$axios = axios

相关文章

  • 2020-01-15

    2020-01-14 【日精进打卡第 660 天 【知~学习】 《六项精进》大纲 4 遍共 2496 遍 《大学》...

  • 挽胡发舟老人二联 (挽联)

    2020-01-14 15:39 阅读:5 点赞:3 评论:0 网页版 (一) 孝甥哭舅飞仙逝,蒼天扼腕,鸟...

  • 积极面对生活

    高艳峰 信阳 网络中级九期 坚持分享第652天 2020-01-14 2019年,有一句流行语——“我太难...

  • 谈球—足球杂苑隐私政策

    谈球—足球杂苑隐私政策 创建日期:2020-01-14 隐私政策 我们重视用户的隐私。您在使用我们的服务时,我们可...

  • 小程序 分页 上拉加载

    2020-01-14 工作笔记 1、首先在data中定义:当前页,总页数,每页条数 2、获取数据列表 3、初次进来...

  • 《科幻小说写作资料 汇总》2020-01-14更新《科幻之路》第

    《科幻小说写作资料 汇总》2020-01-14更新《科幻之路》第二卷 2020重制版 一览 点击链接查看原图,可以...

  • 2020-01-14

    2020-01-14 日精进打卡 姓名:彭新 宁波蓝天白云供应链管理有限公司 【日精进打卡第652天】 【知~学习...

  • 2020-01-14

    2020-01-14 扬州市方圆建筑工程有限公司 377期利他2组 【日精进打卡第638天】 【知~背诵】 《六项...

  • 2020-01-14

    2020-01-14 星期二 一、亿万富翁制造机分享 早上起床照镜子,看着自己的眼睛:美女,早上好!我爱你。吻! ...

  • 2020-01-14

    2020-01-14 姓名:何秋兵《六项精进》打卡 ,01月14日 公司:扬州市方圆建筑工程有限公司 第349期 ...

网友评论

      本文标题:2020-01-14

      本文链接:https://www.haomeiwen.com/subject/feioactx.html