发送表单数据时出现 400 Bad Request 错误 Angular

Getting 400 Bad Request error when sending form data Angular

我在向 node.js 后端发送表单数据时遇到 400 错误。它还给了我这个错误:Unexpected token - in JSON at position 0 我知道这不是我的节点应用程序的问题,因为我可以使用 Postman 发送相同的数据并且它工作得很好。

这是我的Angular方法:

      const formData = new FormData();
      formData.append("db", $scope.item.db.toLowerCase());
      formData.append(
        "collection",
        $("#collection")
          .find("option:selected")
          .text()
          .toLowerCase()
      );
      formData.append("owner", JSON.parse(sessionStorage.getItem("user"))._id);
      formData.append("name", $scope.item.name);
      formData.append("description", $scope.item.description);
      formData.append("year", $scope.item.year);
      formData.append("photo", $("#picture")[0].files[0]);
      $http.post("items/uploadItem", formData).then(function(response) {
        console.log(response.data);
      });
    };

如果您需要更多信息,请发表评论,我很乐意提供。

Angular$http 服务需要标准对象,而不是表单对象。您正在将序列化的表单对象发送到您的端点。尝试

const formData = {
  db: $scope.item.db.toLowerCase(),
  // and the rest of your object properties. 
};

事实证明,我仍在以 json 文档的形式发送数据。诀窍是将 http 调用更改为此:

$http.post("items/uploadItem", formData, {headers: { "Content-Type": undefined }})