Почему Axios в этом коде не отправляет никаких данных в серверную часть Vue?

Я пытаюсь загрузить изображение на сервер с помощью 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.info(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.info(data);
                        
                        this.uploadResult = "File " + data.fileName + " successfully uploaded."
                    });
            }
        }

    };

</script>
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
25
2

Ответы 2

Попробуйте реструктурировать запрос, например:

            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())

Чем здесь baseURL отличается от URL?

Saeed Aftabi 03.04.2021 16:20

baseUrl - это ваш базовый URL-адрес, например 127.0.0.1:8000/api, который является общим для всех ваших URL-адресов, а URL-адрес - это добавленная часть, например /users или /api/users.

Boussadjra Brahim 03.04.2021 16:22

Я упаковывал formData и config в объект. Они должны быть вторым и третьим аргументами, передаваемыми для публикации, например:

axios.post('/api/Image', formData, config)

И проблема решена!

Другие вопросы по теме