Javascript 为什么此代码中的Axios不’;在Vue中是否不向后端发送任何数据?

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

我试图用Vue js将图像上传到服务器,但听起来Axios没有向后端发送任何数据。后端是ASP.netCore API。这是非常简单的,我已经做了这个表单提交数据到服务器通过获取之前,它工作得很好! 你觉得有什么不对吗? 您可以在下面看到我的代码:

 <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