2016-05-21 3 views
1

Я новичок в AngularJS & NodeJS. Я пытаюсь получить ответ API от NodeJS и отображать его в угловом формате. Я использую $ http для вызова API. Ниже приведен код nodeJS.

var express = require('express'); 
var app = express(); 
app.get('/employees',function(req,res) 
{ 
console.log("Test Output :"); 
res.status(200).send('Hello User'); 
}); 
app.listen(8080); 

Ниже мой угловой код

var myapp = angular.module('myapp',[]).controller('myappController', ['$scope','$http',function ($scope,$http){ 
$http.get('http://127.0.0.1:8080/employees') 
    .then(function(response) 
    { 
     window.alert("Success"); 
     $scope.emdata=response.data; 
    },function(errorresponse) 
    { 
     window.alert("Error"); 
     $scope.emdata=errorresponse.status; 
    }); 
}]); 

Я использую выражение {{emdata}} в HTML-страницы. Когда я открываю HTML-страницу, я вижу вывод консоли «Test Output» в терминале NodeJS, что означает, что API вызывается, но я не вижу «Hello User» на странице HTML. Похоже, что функция успеха в $http.get не вызвана, и вызвана только функция ошибки. Поэтому я вижу окно предупреждения с «Ошибка», когда я открываю HTML-страницу и статус ответа как -1 вместо {{emdata}}.

Когда я попытался сделать вызов API через Postman, я получил правильный ответ со статусом 200. Так что мне интересно, что не так?

+0

Эй, попробуйте это: '$ http.get ('/ employees /', $ scope.initial) .success (функция (ответ) {});' и попробуйте отправить ответ json, возможно, с сервера, потому что он остается чистым и чистым. 'res.json ({статус: 200, сообщение: 'message'}); ' –

+0

@GandalftheWhite' .success' и '.error' устарели – Clint

+0

Я никогда не знал. Каков альтернативный вариант, формат, который он использует? Это не выглядит так аккуратно или обновлено. –

ответ

0

Проверьте заголовки, то есть какой формат принят в запросе $ http и формате ответа (JSON, обычный текст и т. Д.).

значение Fix в

$httpProvider.defaults.headers.common 

или набор нуждался в

$httpProvider.defaults.headers.get = { ... }; 

или просто использовать

var requestParams = { 
    method: 'GET', 
    url: '...', 
    headers: { 
     ... 
    } 
}; 
$http(requestParams).then(...); 

Посмотрите на Настройка HTTP заголовков в official manual для более подробной информации ,

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