使用axios进行发布会不断返回状态为422的请求失败

时间:2020-04-01 09:13:58

标签: reactjs axios http-status-code-422

我的代码一直运行到今天,所以基本上API所做的是它将默认的gcm-id发送到服务器并注销了用户,但是从今天早上开始,我一直收到此错误,并且我不知道它是否与服务器端或客户端有关,所以这是我的代码,我想知道我是在做错什么还是要怎么解决?

const ExitAccount = () => {
      const user = {
            gcm_id: 1
      };
      const options = {
            headers: {
                 'Authorization': this.state.Authorization,
                 'content-type': 'application/json'
                 }
            };
            axios.post('sth', { gcm_id: 1 }, options)
                .then((response) => {
                    this.setState({ loading: false, Authorization: "sorryBuddy", profile: 
                    "dropdownProfile hidden", login: "dropdownLogin show" })
                    localStorage.setItem('api_key', this.state.Authorization);
                    console.log(response)
            });
}

当我打开网络以查看是什么问题时,它会返回

message: "can't find gcm_id"

2 个答案:

答案 0 :(得分:0)

发布请求的第二个参数是{ gcm_id: 1 }。我看到您也已经在上面声明了该用户,但是您根本没有使用它。您从客户端作为参数发送的内容与后端服务器期望在参数中找到的内容之间可能不一致。

我会先去那里。

答案 1 :(得分:0)

您可能要尝试:

axios.post('sth', {data: {gcm_id: 1}, options)

或在标题中添加数据,例如:

const options = {
        headers: {
             'Authorization': this.state.Authorization,
             'content-type': 'application/json'
             },
        data: {gcm_id: 1}
        };

希望这会有所帮助