首页 > 解决方案 > 为什么 GET 日期正确但在 POST 中不正确?

问题描述

使用带有 Axios 的 Reactjs 发布/获取到 dotnetcore webapi。

  1. Axios GET api 调用以检索 datetimesUTC 列表
    • 响应 datetimeUTCs 在控制台/显示中显然是正确的。
  2. axios GET api调用传入选定的datetimeUTC
    • API 清楚地接收到正确的 UTC 日期时间
  3. Axios POST api 调用传入相同的选定日期时间UTC
    • API 接收本地化日期时间而不是 UTC 时间。

我的问题是:为什么我的 API 在 GET 上获得正确的 UTC,但在 POST 上本地化?

我试过一个空的控制器函数,一个是 POST,一个是 GET,可以清楚地看到它们是不同的。

/// API post w/ Axios
axios.post("api/action", {
  date: date
});
/// API get w/ Axios
axios.get("api/action", {
  params: { date: date}
});
[HttpPost("{action}")]
public void Reconcile([FromBody]DateTime date)
{
  ...
}
[HttpGet("{action}")]
public void Reconcile(DateTime date)
{
  ...
}

GET api 操作接收正确的 UTC 日期时间。POST api 操作接收到不正确的本地化日期时间。

编辑:

我只是无法理解为什么它会因发布/获取而改变。我根本不需要为 GET 做任何花哨的事情,但是整天试图让 POST 工作是一场噩梦。我可以将其更改为 GET 就可以了,但从语义上讲,它确实应该是 POST。

标签: javascriptc#axiosasp.net-core-webapi

解决方案


推荐阅读