【问题标题】:How to send axios post request with date object in request body?如何在请求正文中发送带有日期对象的 axios 发布请求?
【发布时间】:2021-05-31 12:30:16
【问题描述】:

我的 api 包括姓名和日期数据
名称类型是字符串。日期类型是字符串
此外,在这个项目中包括最新版本的 Vue.js

postTodo(){
      axios({
        method: 'post',
        url: 'my-api',
        headers : {
          token: this.token
        },
        data: {
          name : "Hello",
          // it's not working => JSON.stringify(new Date())
          date : JSON.stringify(new Date())
        }
      }).catch(err => console.log(err))
      .then( response =>
      console.log(response))
      
    }

这是一个检查帖子请求的按钮

<button @click="postTodo">Send To-Do</button>

所以,我想将日期对象转换为字符串。如何解决这个问题?

【问题讨论】:

  • 不需要手动对日期进行字符串化,只需设置date: new Date(),当Axios将请求正文转换为JSON时,会转换为ISO 8601字符串
  • 我以前试过。它不起作用。
  • 它到底是怎么不起作用的? API 是否失败? date-property 是否为空、缺失或格式错误?有什么问题?
  • 格式错误。因为当我宣布时,它给出了这种格式:Tue Mar 02 2021 03:38:42 GMT+0300 (GMT+03:00)。我想采用这种格式:ISO 8601。我也使用现成的javascript日期函数=> toUTCString。但我没有将UTC转换为ISO。因为javascript允许使用一个日期函数。

标签: javascript vue.js axios


【解决方案1】:

我解决了这个问题。像这样:

let dates= new Date()
let month = dates.getUTCMonth() + 1
let day = dates.getUTCDate()
let year = dates.getUTCFullYear()
let currentDate = year + "-" + month + "-" + day

【讨论】:

    【解决方案2】:

    您可以使用dayjs 创建日期并设置格式

    有点像

    dayjs().format("YYYY-MM-DD")
    

    阅读文档以根据您的 API 的需要格式化日期

    【讨论】:

      猜你喜欢
      • 2021-11-17
      • 2021-01-03
      • 2017-08-31
      • 2020-05-12
      • 2014-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-16
      相关资源
      最近更新 更多