React Native Загрузка изображения не работает на iOS, она работает на Android

#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': '*',