2016-02-21 2 views
0

Итак, я создал проект Maven в NetBeans. Развернуто на Amazon Elastic Beanstalk. Я создал службу GET (работает идеально на месте), которая подключается к базе данных Oracle.REST не работает в AWS на Maven Project. Просто локально

Define Rest

Вот код, я использую, чтобы получить доступ к службе GET из моего индекса, он работает при развертывании на месте:

AJAX

И вызов метода с URI:

self.ajax("http://127.0.0.1:8080/webresources/kpis/first/09/09/1994/second/20/02/2017", 'GET').done(function(data) { 
    alert(data); 
}); 

(При запуске локально y add/mavenproject1/между 8080 и webresources).

Однако при развертывании и запуске кода я не могу получить результат. Chrome показывает мне эту ошибку в консоли «ERR_CONNECTION_REFUSED» (я полагаю, это потому, что она не может найти localhost при развертывании). Я верю, потому что он не может найти localhost, и он рассматривает REST, как если бы это был кросс-доменный запрос.

ERROR CHROME

мне нужно подключить FRONTEND с бэкэндом, не подвергая мою REST никому. Кто-нибудь может мне помочь?

Спасибо.

+0

В последнем скриншоте IP-адрес, который он пытается удалить, - 0.0.0.0. Это явно неверно. «Мне нужно подключить свой FrontEnd с помощью бэкэнд, не подвергая меня REST никому». Ваш FrontEnd работает в браузере, правильно? Как именно вы настраиваете вызов AJAX в браузере, чтобы узнать, какой адрес для службы REST? –

+0

@Juan Дэвид Круз Серрано. Я столкнулся с той же проблемой. Вы разрешили это? Мой сервис отлично работает на моем локальном компьютере, но при развертывании на EC2 он дает мне 404 и говорит, что служба не найдена. Это сводит меня с ума. Любая помощь будет оценена. –

+0

@HiteshBhutani Я решил проблему. Вместо использования PathParam и URL с параметрами, разделенными «/». User QueryParam и используйте self.ajax ("/ webresources/kpis/first? Day = 01 & month = 02 & year = 12"). и т.д –

ответ

0

Ваш код переднего конца должен будет вызывать IP-адрес хоста, на котором выполняется код бэкэнд. Это не так. Но если передний конец задних концов обслуживаемых одним и тем же процесс, то вы можете использовать относительные ссылки в вашем АЯКСЕ звонков:

self.ajax("/webresources/kpis/first/09/09/1994/second/20/02/2017", 'GET') 
    .done(function(data) { 
     alert(data); 
}); 

GET звонки будут доступны для общественных абонентов, но ни один из других HTTP глаголов. Вы можете указать мелкозернистый контроль, настроив заголовки CORS на своем сервере. Однако, если вы используете ajax, вы в значительной степени собираетесь разоблачить все глаголы, используемые вашим api для всех и всех вызывающих.

Если вы хотите больше контроля над тем, кто может позвонить вашему api, вам нужно заглянуть в систему доступа на основе токенов, такую ​​как JWT, где только аутентифицированные клиенты могут вызывать ваши конечные точки api, добавляя токен в заголовки, отправленные с запросами.

Смежные вопросы