javascript - 为什么 GET 日期正确但在 POST 中不正确?
问题描述
使用带有 Axios 的 Reactjs 发布/获取到 dotnetcore webapi。
- Axios GET api 调用以检索 datetimesUTC 列表
- 响应 datetimeUTCs 在控制台/显示中显然是正确的。
- axios GET api调用传入选定的datetimeUTC
- API 清楚地接收到正确的 UTC 日期时间
- 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 操作接收到不正确的本地化日期时间。
编辑:
邮政
- Axios 发布:日期:“2019-01-01T12:00:00.000Z”
- 收到的 API:DateTime - {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。
解决方案
推荐阅读
- c# - 从 C# 连接到 Redshift 集群时,ServerVersion 引发了类型为 system.invalidoperation 异常的错误
- ios - 如何在关闭时调用点击手势(iOS)
- powershell - 如何使用 PowerShell GUI 在用户 jpegPhoto 和 thumbnailPhoto 的属性中插入图片?
- django - Dhango 1.11 如何过滤一个过滤器的内容?
- javascript - 无法在打字稿中调用 svgdotjs rect 方法
- ios - 在 WhatsApp 上快速共享图像和文本
- php - 有时谷歌分析增强电子商务交易没有更新
- c# - 无法使用 C# Interop.Outlook 访问不同的收件人帐户文件夹
- excel - 如何使用重新格式化用户粘贴的文本块的长 For Next 循环来加速我的 VBA 代码?
- angular - 将 ngfor 与另一个 ngfor 中的动态可观察对象一起使用