zoukankan      html  css  js  c++  java
  • axios的Content-Type类型导致后台无法解析数据

    四种常见POST 请求的 Content-Type数据类型:

    • application/x-www-form-urlencoded
    • multipart/form-data
    • application/json  (axios中默认请求头的编码)
    • text/xml

    1. application/x-www-form-urlencoded

          1.1 用 URLSearchParams 传递参数

    let param = new URLSearchParams()
    param.append('username', 'admin')
    param.append('pwd', 'admin')
    axios({
        method: 'post',
        url: '/api/lockServer/search',
        data: param
    })

    需要注意的是: URLSearchParams 不支持所有的浏览器,但是总体的支持情况还是 OK 的,所以优先推荐这种简单直接的解决方案

        1.2  配置axios请求头中的content-type为指定类型

    axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
    {headers:{'Content-Type':'application/x-www-form-urlencoded'}}

        1.3  将参数转换为query参数, 利用qs

            引入 qs ,这个库是 axios 里面包含的,不需要再下载了。

    import Qs from 'qs'
    let data = {
        "username": "cc",
        "psd": "123456"
    }
    
    axios({
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded'
        },
        method: 'post',
        url: '/api/lockServer/search',
        data: Qs.stringify(data)
    })

    2  Content-Type: multipart/form-data

    对于这种类型的数据,我们常见前端页面上传个人图像,然后点击保存发送后端修改原始数据。解决办法下:

    let params = new FormData()
            params.append('file', this.file)
            params.append('id', localStorage.getItem('userID'))
            params.append('userName', this.name)
            params.append('sex', this.sex)
            params.append('mobile', this.phone)
            params.append('email', this.email)
            params.append('qq', this.qq)
            params.append('weChat', this.WeChat)
    
            axios.post(URL, params, {headers: {'Content-Type': 'multipart/form-data'}}).then(res => {
              if (res.data.code === 0) {
                this.$router.go(-1)
              }
            }).catch(error => {
              alert('更新用户数据失败' + error)
            })

      

  • 相关阅读:
    MVC4 中Remote的使用
    NHibernate遇到的问题集 持续更新。
    2014总结,2015展望
    Redis结合EntityFramework结合使用的操作类
    Entity Framwork db First 中 Model验证解决办法。
    「面经」阿里蚂蚁金服 offer 之路
    最长公共子序列-LCS
    阿里面试题解答-倒排索引
    如何解决ubuntu下Chromium 新建的应用快捷方式图标模糊的问题
    join sleep yield
  • 原文地址:https://www.cnblogs.com/caoleyun/p/12767744.html
Copyright © 2011-2022 走看看