我正在尝试使用 axios 向我的后端发送发布请求,但由于某种原因我无法发送布尔值“isActive”。有没有办法做到这一点?
async submit() {
const isValid = await this.$validator.validateAll()
if (isValid && !this.submitting) {
let formData = new FormData();
formData.set("city", this.formData.city)
formData.set("state", this.formData.state)
formData.set("county", this.formData.county)
formData.set("isActive", true) // <- NOT ACCEPTING THIS VALUE
axios.post("/api/v1/team/createTeam", formData, {
headers: {
'Content-Type': 'application/json'
}
})
.then(res => {
if (res.status === 200) {
this.submitting = true
this.cancelModal()
} else {
console.log(res.data.code);
}
})
.catch(function (err) {
console.log(err);
})
}
}
答案 0 :(得分:0)
FormData
只能包含字符串值。设置布尔值 tmp[0]
将导致值 true
。后端必须将该字符串转换为布尔值。
此外,您的标头不应是 "true"
(用于 JSON 有效负载)。如果发送 application/json
作为有效负载,则标头应为 FormData
:
multipart/form-data
如果您的后端实际上需要 JSON,则您无法发送 axios.post("/api/v1/team/createTeam", formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
})
。改为切换到 JavaScript 对象(它接受布尔值):
FormData