Vue 发送空字符串而不是 ID

时间:2021-01-14 18:33:28

标签: vue.js axios

我有一个作业评分系统,因为管理员可以上传文件(问题),学生可以上传他们的解决方案(所有文件都是 PDF)

我在前端使用 Vue + axios,在后端使用 Go + echo。

一切都很顺利,只是有时学生无法上传他们的文件,我尝试重现错误但我不能,而且我将错误写在一个文件中以便以后能够查看。

首先,我使用哈希而不是在 URL 中显示整数 ID

域示例是:https://my-domain/assignment/PqBL7a6BgYreo32

因此,在 Vue 的 created 部分,我正在调用 axios 以从后端获取整个分配记录(包括 ID)并将其保存在 中的变量中数据部分

created() {
    api({
      method: "GET",
      url: "/assignments/assignment",
      params: {
        assignmentHash: this.$route.params.assignmentHash
      }
    }).then(response => {
      this.assignment = response.data.assignment
    })
  },

其次在后端,我使用传递的分配哈希检索分配并相应地更新 UI(向用户添加截止日期、总分和其他一些数据 - 所以我确保分配之前被提取学生尝试发送他/她的提交)

之后,当用户尝试上传提交时,我使用在上一步中获取并存储的分配对象

pushSubmission() {
    let formData = new FormData()
    formData.append("assignmentID", this.assignment.ID)
    formData.append("assignmentHash", this.assignment.hash)
    formData.append("submissionFile", this.submission.bytes)
    api({
      method: method,
      url: "/assignments/submissions",
      data: formData,
    }).then(() => {
      this.$router.push({name: 'Assignments'})
    })
}

并且大多数用户能够正确上传他们的文件而没有任何问题,但有些用户不能,当我尝试检查服务器上的错误日志时,我发现错误发生在assignmentID正在发送的是一个无法解析为 uint 的空字符串 ""strconv.ParseUint: parsing "": invalid syntax

那么是什么导致了这个错误出现在一些学生身上,因为它对大部分学生都有效

0 个答案:

没有答案