【发布时间】:2018-01-26 21:34:01
【问题描述】:
我是 Node.js 和 AngularJS 的新手。我正在使用 MEAN 堆栈来开发一个访问定义的 Web 服务的网站。当我使用$http 时,它总是返回空数据。这是我的sn-ps:
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 上运行良好,但在页面上运行良好。
您能帮我解决这个问题吗?
【问题讨论】:
-
你能确保后端收到请求并返回适当的数据吗?代码看起来总体上“没问题”。
-
谢谢菲利普!但是当我检查 Boomerang chorme 扩展时,后端工作正常。
-
您是否尝试过像这样调用后端:
$http('/api/vendors/st_details')。我假设 Angular 再次自行添加了 baseUrl。 -
是的,当我的服务和应用程序位于同一个端口时,这是有效的。但我想将应用程序和服务分开。所以在 3000 端口上运行服务和应用程序在 4000 端口上运行。
-
var request = require('request');在另一个控制器之一中工作正常。但我无法在 vendor.service.js 中使用此请求。谁能帮我。谢谢一百万!