为什么GET日期正确但在POST中不正确?

时间:2019-04-23 19:05:14

标签: javascript c# axios asp.net-core-webapi

将Reactjs与Axios一起使用以发布/获取到dotnetcore webapi。

  1. Axios GET api调用以检索datetimesUTC列表
    • 在控制台/显示中响应datetimeUTC显然是正确的。
  2. Axios GET api调用在选定的datetimeUTC中传递
    • 该API显然收到了正确的UTC日期时间
  3. Axios POST api调用在相同的选定日期时间传递
    • 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操作接收到错误的本地化日期时间。

编辑:

  • POST

    • Axios帖子:日期:“ 2019-01-01T12:00:00.000Z”
    • 收到的API:日期时间-{1/1/2019 12:00:00 PM}
  • 获取

    • Axios获取:日期:“ 2019-01-01T12:00:00.000Z”
    • 收到的API:DateTime-{1/1/2019 5:00:00 AM}

我无法理解为什么它会更改为发布/获取。我完全不需要为GET做任何花哨的工作,但是整天想让POST正常工作是一场噩梦。我可以将其更改为GET,就可以了,但是从语义上讲,它实际上应该是POST。

0 个答案:

没有答案