Позвоните в службу Elastic Beanstalk из своего рода - PullRequest
0 голосов
/ 30 августа 2018

Я создал сервис Elastic Beanstalk и могу открыть его в своем браузере с помощью ebopen.

Однако, когда я помещаю URL в свой собственный React-код, чтобы сделать запрос на выборку к моей службе, я получаю следующую ошибку:

TypeError: Network request failed
at XMLHttpRequest.xhr.onerror (fetch.js:441)
at XMLHttpRequest.dispatchEvent (event-target.js:172)
at XMLHttpRequest.setReadyState (XMLHttpRequest.js:567)
at XMLHttpRequest.__didCompleteResponse (XMLHttpRequest.js:397)
at XMLHttpRequest.js:503
at RCTDeviceEventEmitter.emit (EventEmitter.js:179)
at MessageQueue.__callFunction (MessageQueue.js:351)
at MessageQueue.js:116
at MessageQueue.__guardSafe (MessageQueue.js:314)
at MessageQueue.callFunctionReturnFlushedQueue (MessageQueue.js:115)

Мой код выглядит так:

class IntroScreen extends React.Component {
sendDataToBackend = async () => {
 fetch('https://<URL>').then(function(response) {
    if (!response.ok) {
        console.log(response.statusText);
    }
    return response;
}).then(function(response) {
    console.log("ok");
}).catch(function(error) {
    console.log(error);
});
}

render() {

return (

    <View style={tutorialStyle.buttonContainer}>
      <Button
        title=">"
        color="orange"
        height="40"
        onPress={() => this.sendDataToBackend()}
      />
    </View>
);
}
}

1 Ответ

0 голосов
/ 30 августа 2018

Служит ли нативный код реакции клиенту из того же источника, что и служба EB?

Если нет, то ошибка, которую вы получаете, может быть вызвана браузером, который часто ограничивает это: Cross Origin Resource Sharing (CORS). Для этого вам нужно изменить заголовок службы Elastic Beanstalk (EB).

В зависимости от вашей операционной системы EB (Linux или Windows) и веб-сервера вы соответственно устанавливаете заголовок своего сервисного приложения, чтобы разрешить вызовы между источниками.

Вот пример способа установки его для контейнера на веб-сервере Apache с Elastic Beanstalk. Вот вопрос , показывающий, как разрешить установку cors для упругой установки beanstalk nginx.

Если вы считаете, что причиной вашей ошибки является cors, вы можете попытаться найти помощь или решение с помощью дополнительного поиска. Или вы могли бы создать новый вопрос с вашей конкретной операционной системой и информацией о настройке приложения (какой, какую платформу приложения вы использовали для вашего сервера, особенности эластичного beanstalk (балансировка нагрузки или нет и т. Д.)), И мы можем попытаться помочь вам в Лучший способ исправить корс. Чем больше деталей вы предоставите, тем лучше мы сможем вам помочь.

...