Post 请求出现 422 错误,但我认为我的请求已正确发送

Getting a 422 Error on Post request, but I think my request is being sent correclty

我必须向 API 提出 POST 请求。

我应该向它发送一些数据并取回一个 JWT 令牌。

我必须发送的数据是一个名为 data 的对象,如下所示:

{
    "firstName": "Jane",
    "address": "Lohmühlenstraße 65",
    "numberOfChildren": 2,
    "occupation": "EMPLOYED",
    "email": "jane.doe@getpopsure.com"
}

API 文档如下所示:

curl https://challenge-dot-popsure-204813.appspot.com/user \
-H 'Content-Type: application/json' \
-d '{"firstName":"Jane","address":"Lohmühlenstraße 65","numberOfChildren":2,"occupation":"EMPLOYED","email":"jane.doe@getpopsure.com"}' \
-X POST

我正在使用 axios 发送一个带有对象的 POST 请求,但是我收到一个 422 错误:

Failed to load resource: the server responded with a status of 422 ()

这是我的POST请求,其中data是上面的对象:

    axios.post('https://challenge-dot-popsure-204813.appspot.com/user', data)
    .then(function (response) {
      debugger
      console.log(response);
    })
    .catch(function (error) {
      console.log(error);
    });

任何想法可能是什么问题?

我能够通过删除或使 JSON 数据无效来重现 422 错误。比如remove/rename "firstName" 属性。

示例:

{
    "name": "Jane",
    "address": "Lohmühlenstraße 65",
    "numberOfChildren": 2,
    "occupation": "EMPLOYED",
    "email": "jane.doe@getpopsure.com"
}

导致:422 个无法处理的实体

{
    "errors": {
        "firstName": [
            "Missing data for required field."
        ],
        "name": [
            "Unknown field."
        ]
    }
}

Plunker

我认为您面临的问题是,当您执行 axios.post 时,您期望的数据并不全部存在,从而导致您看到的错误。请确保请求中发送的数据事先包含所有有效字段和值。