Axios使用Post传String出现额外双引号或冒号、等号的解决方法

1 篇文章 0 订阅
本文讲述了Vue开发者在调用后端接口时遇到字符串格式问题,通过Github找到解决方案:将Axios的Content-Type从application/json改为text/plain,以避免JSON解析导致的额外字符。重点在于理解字符串不是有效JSON导致的解析错误。
摘要由CSDN通过智能技术生成

本Vue菜鸟近日接手一个Vue项目的拓展,在对接后端接口的时候在用Axios传String的时候发现后端收到的字符串无端端多了个等号或者一组双引号、顿号。翻了几百个论坛都没找到答案,但最后在Github上找到了.
原帖地址

后端接口代码

public Result login(@RequestBody String account, HttpSession session)

Typescript代码

login({ commit }, userInfo) {
    const { qq } = userInfo
    return new Promise((resolve, reject) => {
      login(qq).then(response => {
        const { data } = response
        commit('SET_USERNAME', data.username)
        commit('SET_NICKNAME', data.nickname)
        commit('SET_AVATAR', data.avatar)
        commit('SET_EMAIL', data.email === null ? '' : data.email)
        commit('SET_SEX', data.sex)
        sessionStorage.setItem('username', data.username)
        resolve()
      }).catch(error => {
        reject(error)
      })
    })
  }

Axios代码

export function login(data) {
  return request({
    url: '/user/QQ/login',
    method: 'post',
    headers: {
      'Content-Type': 'application/json'
    },
    data
  })
}

更正方法

将Axios中的Content-Type改成text/plain即可

export function login(data) {
  return request({
    url: '/user/QQ/login',
    method: 'post',
    headers: {
      'Content-Type': 'text/plain'
    },
    data
  })
}

错误原因

字符串不是JSON格式的字符串,解析的时候不能被服务端解析成标准JSON格式
所以可以使用标准JSON解决或在headers里面指定负载格式

  • 15
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值