0
点赞
收藏
分享

微信扫一扫

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

伢赞 2022-04-14 阅读 40

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

后端接口代码

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里面指定负载格式

举报

相关推荐

0 条评论