Javascript Axios在控制器返回对象中发送formData
//Vuejs2 //拉维7.x版 我求助于你,因为我在阻碍,我找不到解决办法。 我想在控制器中恢复对象中的数据。 在我看来,我做了一个axios贴子Javascript Axios在控制器返回对象中发送formData,javascript,laravel,vue.js,vuejs2,axios,Javascript,Laravel,Vue.js,Vuejs2,Axios,//Vuejs2 //拉维7.x版 我求助于你,因为我在阻碍,我找不到解决办法。 我想在控制器中恢复对象中的数据。 在我看来,我做了一个axios贴子 data() { return { customer: { name: 'abc', login: 'def' }, file: null } },methods: {
data() {
return {
customer: {
name: 'abc',
login: 'def'
},
file: null
}
},methods: {
submit(){
let formData = new FormData();
formData.append("customer", this.customer);
formData.append("file", this.file);
axios.post('/project/new',
formData, {
headers: {
"Content-Type": "multipart/form-data"
}
}).then(data => {
console.log(data.data);
});
}
}
我在我的控制器中收集这样的数据
public function postProject(Request $request)
{
return $request->customer; //return [Object Object]
return $request->customer->name; //return Trying to get property 'name' of non-object
return $request->customer['name']; //return Illegal string offset 'name'
return $request->file; //return [Object Object]
}
谢谢你的帮助。祝您愉快。您不能使用
.append
将对象添加到FormData中
查看该方法时,只接受USVString或Blob作为值。其他的一切都是一丝不苟的
Javascript中标准对象的字符串表示是[object object]
您可以尝试
JSON.stringify(this.customer)
将其转换为JSON表示。尝试$request->get('customer')或$request->input('customer')我非常感谢您!终于成功了!另一个快速问题是,如果我发送文件,是否需要JSON.stringify?要发送文件,必须将File
类的实例传递给FormData