Javascript 为什么此代码中的Axios不’;在Vue中是否不向后端发送任何数据?
我试图用Vue js将图像上传到服务器,但听起来Axios没有向后端发送任何数据。后端是ASP.netCore API。这是非常简单的,我已经做了这个表单提交数据到服务器通过获取之前,它工作得很好! 你觉得有什么不对吗? 您可以在下面看到我的代码:Javascript 为什么此代码中的Axios不’;在Vue中是否不向后端发送任何数据?,javascript,vue.js,vuejs3,Javascript,Vue.js,Vuejs3,我试图用Vue js将图像上传到服务器,但听起来Axios没有向后端发送任何数据。后端是ASP.netCore API。这是非常简单的,我已经做了这个表单提交数据到服务器通过获取之前,它工作得很好! 你觉得有什么不对吗? 您可以在下面看到我的代码: <template> <h1>Uploading an Image!</h1> <p>This component demonstrates Uploading Image to se
<template>
<h1>Uploading an Image!</h1>
<p>This component demonstrates Uploading Image to server.</p>
<div>
<form>
<input type="file" v-on:change="getFile($event)" />
<button v-on:click="submitForm($event)">Upload</button>
</form>
</div>
</template>
<script>
import axios from 'axios'
export default {
name: "Upload1",
data() {
return {
selectedFile: " ",
uploadResult: " "
}
},
methods: {
getFile(event) {
this.selectedFile = event.target.files[0];
console.log(this.file);
},
submitForm(event) {
event.preventDefault();
let formData = new FormData();
formData.append("ImageData.File", this.selectedFile);
let config = {
headers: {
"Content-Type": "multipart/form-data"
}
};
axios.post('/api/Image', {
formData,
config
}).then(resposne => resposne.json())
.then(data => {
console.log(data);
this.uploadResult = "File " + data.fileName + " successfully uploaded."
});
}
}
};
</script>
上传图片!
此组件演示如何将图像上载到服务器
上传
从“axios”导入axios
导出默认值{
名称:“上传1”,
数据(){
返回{
所选文件:“”,
上载结果:“
}
},
方法:{
获取文件(事件){
this.selectedFile=event.target.files[0];
console.log(this.file);
},
提交表单(事件){
event.preventDefault();
设formData=new formData();
formData.append(“ImageData.File”,this.selectedFile);
让配置={
标题:{
“内容类型”:“多部分/表单数据”
}
};
axios.post(“/api/Image”{
formData,
配置
}).then(resposne=>resposne.json())
。然后(数据=>{
控制台日志(数据);
this.uploadResult=“File”+data.fileName+“已成功上载。”
});
}
}
};
尝试重新构造请求,如:
event.preventDefault();
let formData = new FormData();
formData.append("ImageData.File", this.selectedFile);
let config = {
headers: {
"Content-Type": "multipart/form-data"
}
};
axios({
baseURL: 'https://some-domain.com/api/', // your backend base url
method: 'post',
url:'/api/Image',
data:formData,
...config
}).then(resposne => resposne.json())
我正在将formData和config包装到一个对象中。它们应该是传递给post的第二个和第三个参数,如下所示:
axios.post('/api/Image', formData, config)
问题解决了 baseURL与此处的URL有什么不同?baseURL是您的后端基本URL,如
127.0.0.1:8000/api
,它对所有URL都是通用的,并且URL是附加部分,如/users
或/api/users