http.get 问题 angular + nodejs

Posted

技术标签:

【中文标题】http.get 问题 angular + nodejs【英文标题】:http.get problems angular + nodejs 【发布时间】:2015-04-09 21:39:43 【问题描述】:

当我使用此代码时,工作并且我得到 tem 响应“ok”:

controller.js

    var myApp = angular.module('myApp',[]);

myApp.controller('AppController',['$scope','$http',function($scope,$http)

    $http.get('/').
        success(function (response) 
        console.log("ok");
    );

]);

server.js

var express = require('express');
var app = express();

app.use(express.static(__dirname + "/public"));

app.get('/', function (req, res)

    var person1 = 
        name: 'Tim',
        email:'tim@gmail.com',
        number:'32232233'
    ;

    var person2 = 
        name :'Dani',
        email:'Dani@gmail.com',
        number:'22222222'
    ;

    var contactList = [person1,person2];

    res.json = contactList;
    console.log("send work");
);

app.listen(3000);
console.log("Server running on port 3000");

但是,当我将$http.get('/') 更改为$http.get('/list') 并将app.get('/', function (req, res) 更改为app.get('/list', function (req, res) 时不起作用。

获取时间“列表”永远保持待处理,当我停止节点服务器时,我得到“GET http://localhost:3000/list net::ERR_EMPTY_RESPONSE”。

【问题讨论】:

res.json(contactList); 【参考方案1】:

您实际上并没有调用res.json() 方法。

确保您实际上是在调用该方法,而不是将其分配为等于联系人列表:

res.json(contactList);

对比

res.json = contactList

在上下文中:

app.get('/list', function (req, res)

    var person1 = 
        name: 'Tim',
        email:'tim@gmail.com',
        number:'32232233'
    ;

    var person2 = 
        name :'Dani',
        email:'Dani@gmail.com',
        number:'22222222'
    ;

    var contactList = [person1,person2];

    res.json(contactList);
    console.log("send work");
);

您可能会在“/”上收到响应的原因是因为您的应用托管在“/”上,因此您会收到响应。

【讨论】:

以上是关于http.get 问题 angular + nodejs的主要内容,如果未能解决你的问题,请参考以下文章

Angular 4 HTTP GET 不包括用于 HTTP 标头中的授权的 JWT

Angular 2 Http GET 的问题

获取状态码 http.get 响应 angular2

使用来自 API 的 $http.get 进行 Angular.js 本地开发

Angular http.get + WebApi = Cors 失败

Angular 2 http get observable 调用了两次