1

我必须向给我的 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);
    });

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

4

1 回答 1

0

我能够通过删除或使 JSON 数据无效来重现 422 错误。例如删除/重命名“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."
        ]
    }
}

普朗克

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

于 2020-01-11T14:04:23.497 回答