2016-05-02 5 views
1

Я начал приложение AngularJs и получил некоторые данные из базы данных Я использую NodeJS (совершенно новый для меня), на консоли NodeJS он работает, а также набирает URL-адрес непосредственно в браузер, но когда я попытаюсь получить необходимую информацию, используя http.get() в AngularJS, используя тот же URL-адрес в браузере, я получаю 404 не найден. я полагал, что это будет CORS проблема, поэтому я добавилКак «получить» от NodeJS с AngularJS

require('cors') in the nodeJS app and still doesn't work 

Может кто-нибудь помочь мне с этим? Я правильно делаю отдельные приложения для Angularjs в интерфейсе и NodeJS в бэкэнд или должен ли я собирать их только в одном приложении?

Спасибо за вашу помощь

Это код AngularJS:

$scope.keyLoad = function() { 
    $http.get("localhost:8080/product") 
     .success(function (response) { 
      $scope.keys = response; 
      console.log(response) 
     }) 
}; 
$scope.keyLoad(); 
+1

И ваш код ...? – Joseph

+0

, если ваш URL не является относительным, вы должны указать * полный * url, включая протокол. попробуйте '$ http.get (« http: // localhost: 8080/product »)' – Claies

+0

И прочитайте [это] (http://www.codelord.net/2015/05/25/dont-use-$https- success /), почему '.then (...)' предпочтительнее '.success (...)' –

ответ

1

Я получаю 404 не найден. Я решил, что это будет проблемой cors

Если он говорит, что это ошибка 404, то это ошибка 404, а не проблема CORS.

Посмотрите на свой код:

$http.get("localhost:8080/product") 

Этот URL отсутствует схема. Это относительный URL.

Вы собираетесь запросить что-то вроде http://example.com/myapp/localhost:8080/product.

Положить http:// или https:// перед ним.

+0

Теперь она работает, спасибо вам всем за вашу помощь – Jean

0

Вы должны использовать $http службу.

Например:

$http({ 
    method: 'GET', 
    url: '/someUrl' 
}).then(function successCallback(response) { 
    // this callback will be called asynchronously 
    // when the response is available 
}, function errorCallback(response) { 
    // called asynchronously if an error occurs 
    // or server returns response with an error status. 
}); 

Или

$http.get('/someUrl', config).then(successCallback, errorCallback); 
+0

Я добавил код AngularJS в вопрос – Jean

+0

Я не уверен, но не должен его '' http: // localhost: 8080/product "' –

+0

да, вы правы, теперь он печатается на консоли, но не может используйте $ scope.keys в другом месте – Jean

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