React Native to Django Использование Ax ios [Ошибка: запрос не выполнен с кодом состояния 400] - PullRequest
0 голосов
/ 18 июня 2020

Я перепробовал почти все варианты, но не нашел. Мой сервер Django отлично работает с Postman, но когда я пробую его из своего приложения React Native, он выдает ошибку

[Error: Request failed with status code 400]

Мой код:

submitData = () => {
        console.log("submitQuestionDataToServer");
        let form_data = new FormData();
        form_data.append('qOne_img', Platform.OS === 'android' ? photoUri : photoUri.replace('file://', ''));
        form_data.append('qOne_img', Platform.OS === 'android' ? secondPhotoUri : secondPhotoUri.replace('file://', ''));
        form_data.append('question_title', qTitle);
        form_data.append('asked_by', "http://127.0.0.1:8000/auth/users/2/");
        let url = 'http://127.0.0.1:8000/api/questions/';
        axios.post(url, form_data, {
          headers: {
            "Content-Type": "multipart/form-data",
            "Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1Nk",
        }
        })
            .then(res => {
                console.log("res *******")
              console.log(res.data);
            })
            .catch(err => console.log(err))
    }

Заранее спасибо .

1 Ответ

0 голосов
/ 18 июня 2020

Потому что вы отправляете строку в поле изображения. Значение должно быть типом blob .

должно быть примерно так:

const filePath = Platform.OS === 'android' ? photoUri : photoUri.replace('file://', '')
form_data.append('qOne_img',{uri: filePath, type: mimeType, name: fileName} );

Не уверен, что uri работает в собственном ответе или не. Я использую rn-fetch-blob для обработки блобов.

https://github.com/joltup/rn-fetch-blob#multipartform -data-example-post-form-data-with-file-and-data

...