问题描述
伙计们,我的后端正在工作,我可以在邮递员中发送带有表单数据的图像文件,但在我的客户端使用 axios 我给了一个 multipart/form-data 的标题,它在邮递员中抛出 {"statusCode":500,"message":"Internal server error"}
内容-类型是:
content-type: multipart/form-data; boundary=<calculated when request is sent>
我的 axios 代码:
PostnormalProductsFromServer(context,{formData,tokenSend}) {
const config = {
headers: {
'Authorization': `${tokenSend}`,'Content-Type': 'multipart/form-data'
}
}
axios.post('/api/product',addEnamel,config).then(response=>{
if (response.status == 201) {
alert(response.status)
console.log(response.data)
console.log(addEnamel.file)
}
}).catch(error => {
if (error.response && error.response.status === 400) {
alert("error.response")
}
else if(error.response && error.response.status === 401){
console.log(tokenSend)
}
}) },
从组件发送到 formData 的数据:
var formData = new FormData();
formData.append("name",this.productname);
formData.append("price",parseInt(this.price));
formData.append("discount",parseInt(this.discount));
formData.append("average_rating",this.way);
formData.append("average_rating",4);
formData.append("texture",this.texture);
formData.append("name_of_artist",this.artist);
formData.append("time_for_artist_to_finish",parseInt(this.duration));
formData.append("weight",parseInt(this.weight));
formData.append("height",parseInt(this.height));
formData.append("width",parseInt(this.width));
formData.append("length",parseInt(this.length));
formData.append("usage_of_product",this.usages.join());
formData.append("type_of_colors_used",this.color);
formData.append("washable",Boolean(this.wash));
formData.append("can_be_heated",this.categoryCode);
formData.append("description",this.extra);
formData.append("category",Boolean(this.heat));
formData.append("file",this.pictures[0]);
this.$store.dispatch("PostnormalProductsFromServer",tokenSend});
伙计们,我正在与邮递员轻松发送身体在表单数据中的信息。我的 axios 代码有什么问题?
解决方法
您可能有“CORS”错误
将此代码添加到您的后端源(路由顶部):
const cors = require('cors');
app.use(cors());
然后在终端运行:
npm i cors
,这段代码对我有用
var form = new FormData();
var file = document.querySelector('#file');
form.append("image",file.files[0]);
axios.post('upload_file',form,{
headers: {
'Content-Type': 'multipart/form-data'
}
})