我是Node.js和AngularJS的新手。我正在使用MEAN堆栈开发一个访问定义的webservices的网站。当我使用$http
时,它总是返回空数据。这是我的片段:
vendor.service.js文件:
(function () {
'use strict';
angular
.module('app')
.factory('VendorService', Service);
function Service($http, $q) {
var service = {};
//Store
service.GetCurrent = GetCurrent;//st_details
return service;
function GetCurrent() {
return $http('http://localhost:3000/api/vendors/st_details').then(handleSuccess, handleError);
}
function handleSuccess(res) {
alert('hi3');
alert(res.data);
return res.data;
}
function handleError(res) {
alert('hi2');
alert(JSON.stringify(res));
return $q.reject(res.data);
}
}
})();
回复是:
{
"data": null,
"status": -1,
"config":
{
"method": "GET",
"transformRequest": [null],
"transformResponse": [null],
"url": "http://localhost:3000/api/vendors/st_details",
"headers":
{
"Accept": "application/json, text/plain, */*",
"Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI1OWRlMjY5Y2UyMzY3NGMyMWQzNDNkNWYiLCJpYXQiOjE1MTY5MzU5NTUsImV4cCI6MTUxNjk3OTE1NX0.F9p9n9lMIgABKjv7CsAgzlxg7NtOzU6R1CDOsD6lBbI"
}
},
"statusText": ""
}
我不知道在发送之前如何打印req json。此外,它在Boomerang中工作正常,但不在页面上。
你能帮帮我吗?
答案 0 :(得分:0)
在控制器内展开承诺而不是服务。只需返回服务中的http
req。
(function () {
'use strict';
angular
.module('app')
.factory('VendorService', Service);
function Service($http, $q) {
var service = {};
//Store
service.GetCurrent = GetCurrent;//st_details
return service;
function GetCurrent() {
return $http('http://localhost:3000/api/vendors/st_details')
}
}
你的控制器应该是。
VendorService.GetCurrent().then(handleSuccess, handleError);
function handleSuccess(res) {
alert('hi3');
alert(res.data);
return res.data;
}
function handleError(res) {
alert('hi2');
alert(JSON.stringify(res));
return $q.reject(res.data);
}