发送表单数据时出现 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 }})
我在向 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 }})