2014-07-01 51 views
0

我試圖發佈一些數據到node.js - 從我的angularjs前端表達服務器,我不認爲我的發佈請求曾經到我的服務器。無法發佈到node.js - 從angularjs

這裏是在前端的一些基本angularjs:

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

    $scope.items = null; 

    $http({method: 'POST', 
     url: 'http://localhost:5000/post', 
     data: 'some data' 
    }).success(function(data){ 
     $scope.items = data; 
     console.log(data); 
    }).error(function(data, statusText){ 
     console.log(statusText + ': ' + data); 
    }); 
}]); 

這是一個基本的後端:

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

app.post('/post', function(req, res){  
    console.log(req.url); 
    console.log(req.method); 
    console.log(req.body); 

    res.end('some response data'); 

}); 

app.listen(5000); 

但是服務器沒有記錄任何的數據從前端發送。我不確定POST請求是否到達服務器,因爲它沒有將任何數據記錄到控制檯。任何幫助/建議,將不勝感激。

+0

可能重複[如何讓快遞Node.js的POST查詢?](http://stackoverflow.com/questions/5710358/how-to-get-post- query-in-express-node-js) –

+0

打開你的控制檯,進入Network選項卡並觀察請求,它會顯示錯誤。另外,只需發佈​​到'「/ post」' - 不需要本地主機 – tymeJV

回答

1

檢查您的標題。

data = 'some data'; 
$http({ 
    host: "localhost:5000", 
    port: "80", 
    path: "post", 
    method: "POST", 
    headers: { 
     //"User-Agent": "NodeJS/1.0", 
     "Content-Type": "application/x-www-form-urlencoded", 
     "Content-Length": data.length 
    }, 
    data: data 
}); 

也許添加$http.write(data);

+0

謝謝,添加標頭工作! – TeddyG