使用 formData 和 Axios 上传图像文件
Uploading image file with formData and Axios
所以我想将图像上传到不接受 json 有效载荷的服务器,而是 formData。
我正在做的是
var bodyFormData = new FormData();
bodyFormData.set("access_token", globalState.access_token);
bodyFormData.set("listing_id", 2);
bodyFormData.append("image", Cookies.get("listingCover"));
但在此之后如果我 console.log(bodyFormData)
它 returns 一个空对象?相反,如果我 console.log(...bodyFormData) 它 returns 我在上面设置的每个表单数据的 3 个独立数组。我希望能够在请求正文中将其作为 bodyFormData
发送,如下所示。我该怎么做?
axios({
method,
url: url,
data: bodyFormData,
headers: { "Content-Type": "multipart/form-data" },
})
使用 FormData.entries() 到 console.log 查看您的 formData
中存储的内容
你不能简单地 console.log(bodyFormData) 它不会 return 任何东西。
运行 下面的片段。
var bodyFormData = new FormData();
bodyFormData.set("access_token", 'globalState.access_token');
bodyFormData.set("listing_id", 2);
bodyFormData.append("image", 'Cookies.get("listingCover")');
//Loop througt formData
for (var data of bodyFormData.entries()) {
console.log(data[0]+ ', ' + data[1]);
}
你在做的时候没有任何方法axios
你需要将你的方法设置为post
如下所示发送你的bodyFormData
编辑: 工作演示:https://jsfiddle.net/mxkLejrf/
=> 在演示中你可以看到开发工具 -> 网络 bodyFormData
正在通过 POST
发送
axios({
method: 'post',
url: 'someEndPointUrl',
data: bodyFormData,
headers: {
'Content-Type': 'multipart/form-data'
}
})
.then(function(response) {
// success
console.log(response);
})
.catch(function(response) {
// error
console.log(response);
});
所以我想将图像上传到不接受 json 有效载荷的服务器,而是 formData。 我正在做的是
var bodyFormData = new FormData();
bodyFormData.set("access_token", globalState.access_token);
bodyFormData.set("listing_id", 2);
bodyFormData.append("image", Cookies.get("listingCover"));
但在此之后如果我 console.log(bodyFormData)
它 returns 一个空对象?相反,如果我 console.log(...bodyFormData) 它 returns 我在上面设置的每个表单数据的 3 个独立数组。我希望能够在请求正文中将其作为 bodyFormData
发送,如下所示。我该怎么做?
axios({
method,
url: url,
data: bodyFormData,
headers: { "Content-Type": "multipart/form-data" },
})
使用 FormData.entries() 到 console.log 查看您的 formData
你不能简单地 console.log(bodyFormData) 它不会 return 任何东西。
运行 下面的片段。
var bodyFormData = new FormData();
bodyFormData.set("access_token", 'globalState.access_token');
bodyFormData.set("listing_id", 2);
bodyFormData.append("image", 'Cookies.get("listingCover")');
//Loop througt formData
for (var data of bodyFormData.entries()) {
console.log(data[0]+ ', ' + data[1]);
}
你在做的时候没有任何方法axios
你需要将你的方法设置为post
如下所示发送你的bodyFormData
编辑: 工作演示:https://jsfiddle.net/mxkLejrf/
=> 在演示中你可以看到开发工具 -> 网络 bodyFormData
正在通过 POST
axios({
method: 'post',
url: 'someEndPointUrl',
data: bodyFormData,
headers: {
'Content-Type': 'multipart/form-data'
}
})
.then(function(response) {
// success
console.log(response);
})
.catch(function(response) {
// error
console.log(response);
});