#image #react-native #redux #axios #form-data
#изображение #react-native #redux #axios #форма-данные
Вопрос:
Используя react-native-image-picker
and react-native-image-resizer
package, я выбрал изображение из галереи на устройстве и попытался загрузить это изображение. Я использовал axios multipart / form-data для загрузки изображения на внутренний сервер. Загрузка изображения прошла успешно на устройстве Android, но в симуляторе произошел сбой без какого-либо ответа или ошибки.
Вот мой некоторый код. Я не получил никакого входа в консоль.
let formBody = new FormData();
formBody.append('json', JSON.stringify(userBody));
//userBody is json request
let avatarObject;
if (avatarUri !== '' amp;amp; avatarUri !== null) {
avatarObject = {
name: 'userImage.jpg',
type: 'image/jpeg',
uri: avatarUri
};
}
//avatarObject is image object for uploading here
if (typeof avatarObject !== 'undefined') {
formBody.append('file', avatarObject);
}
let myRequest = {
method: 'post',
url: URL.UPDATE_PERSONAL_DETAILS_With_IMAGE,
headers: {
Accept: 'application/json',
'Accept-Encoding': Platform.OS === 'ios' ? 'gzip' : '',
'Content-Type': 'multipart/form-data',
},
data: formBody,
};
return axios
.request(myRequest)
.then((res) => {
console.log('-----updateUserData.Redux.res.data-----', res.data);
dispatch({type: UPDATE_USER_DATA_SUCCESS});
})
.then(() => dispatch(getUserData()))
.catch((err) => {
console.log('-----updateUserData.Redux.err-----', err);
dispatch({type: UPDATE_USER_DATA_FAILURE, error: err});
});
};
Ответ №1:
если в вашем приложении произошел сбой, эта строка не будет работать для вас, добавьте эту строку в объект заголовка вашего запроса.
'Access-Control-Allow-Origin': '*',