我在访问返回 400 错误的 JSON 对象时遇到一些困难。

我的 Vue 应用程序的响应只有错误 400,没有 JSON 数据。

Error: Request failed with status code 400 
    at createError (createError.js?16d0:16) 
    at settle (settle.js?db52:18) 
    at XMLHttpRequest.handleLoad (xhr.js?ec6c:77) 

使用 Postman 的同一响应返回错误代码和消息。

如何在我的 Vue 应用程序中访问 JSON 响应?

{ 
    "error": "Email already exists!" 
} 

Express API 代码:

res.status(400).json({ error: '电子邮件已存在!' });

我的Vue代码:

handleSubmit () { 
  this.$http.post('http://localhost:3000/users/create', this.user) 
      .then(response => { 
          const status = JSON.parse(response.status) 
          if (status === 200) router.push('/users') 
      }) 
      // why doesn't the json response show 
      .catch(err => { 
          console.log(err) 
      }) 
} 

请您参考如下方法:

您必须使用response属性或error对象:

handleSubmit () { 
  this.$http.post('http://localhost:3000/users/create', this.user) 
      .then(response => { 
          // if on server side you use only status 200, here it's always true 
          if (response.status=== 200) { 
            router.push('/users'); 
          } 
      }) 
      .catch(error => { 
          // error.response can be null 
          if (error.response && error.response.status === 400) { 
              console.log(error.response.data.error); 
          } 
      }) 
} 

See axios 错误处理文档


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!