2016-08-23 153 views
0

Im struggeling讓服務器接受我的發佈請求,因爲我想發佈一些數據/ api/kill。MEAN堆棧/ angularjs發佈請求失敗

由於某種原因,它不會工作。我怎樣才能使它工作?

我下載的平均堆棧的最新版本通過此鏈接:https://github.com/dickeyxxx/mean-sample

我試圖編輯文章模塊開始。

var promise = $http.put('/api/kill', null); 

響應:

angular.js:11756 PUT SITE:3000/server-error 404 (Not Found) 

嘗試二:

var promise = $http.post('/api/kill', null); 

回報:

angular.js:11756 POST SITE:3000/api/kill 404 (Not Found) 

(僅當路線:

app.route('/api/kill').all(articlesPolicy.isAllowed) 
    .get(articles.list) 
    .put(articles.killuserbyid) 

所以,如果路線是:

app.route('/api/kill').all(articlesPolicy.isAllowed) 
.get(articles.list) 
.post(articles.killuserbyid) 

它會返回原單:

angular.js:11756 PUT SITE:3000/server-error 404 (Not Found) 

MY代碼:

我article.server.routes

。 js我確實有:

'use strict'; 

/** 
* Module dependencies 
*/ 
var articlesPolicy = require('../policies/articles.server.policy'), 
    articles = require('../controllers/articles.server.controller'); 

module.exports = function (app) { 
    // Articles collection routes 

    app.route('/api/kill').all(articlesPolicy.isAllowed) 
    .get(articles.list) 
    .put(articles.killuserbyid) 
    .delete(articles.delete); 

    // Single article routes 





    // Finish by binding the article middleware 
    app.param('articleId', articles.articleByID); 
}; 

invokeRolesPolicies在articles.server.policy:

exports.invokeRolesPolicies = function() { 
    acl.allow([{ 
    roles: ['admin'], 
    allows: [{ 
     resources: '/api/kill', 
     permissions: '*' 
    }] 
    }, { 
    roles: ['user'], 
    allows: [{ 
     resources: '/api/kill', 
     permissions: '*' 
    }] 
    }, { 
    roles: ['guest'], 
    allows: [{ 
     resources: '/api/kill', 
     permissions: '*' 
    }] 
    }]); 
}; 

ArticlesListController功能列表articles.client.controller:

ArticlesListController.$inject = ['ArticlesService','$scope']; 

    function ArticlesListController(ArticlesService,$scope) { 
    var vm = this; 

    vm.testing = function() { 



      ArticlesService.test(); 



    } 




    } 

,最後我articleservice功能(articles.client .service)

ArticlesService.$inject = ['$resource','$http']; 

    function ArticlesService($resource,$http) { 

     var o = []; 

     o.test = function() { 
      console.log("tester.."); 

      var promise = $http.put('/api/kill', null); 


      promise.then(function(payload) { 
       console.log(payload.data); 

       }); 
     } 


     return o; 

    } 
+0

看起來像是404問題 –

+0

當然@shammon,但如何解決呢? – maria

回答

0

如果我不明白正確nding你的問題/問題,您收到一個404錯誤,在article.server.routes.js

發出POST請求/api/kill時糾正我,如果我錯了,但在你的代碼你目前的路線是:

app.route('/api/kill').all(articlesPolicy.isAllowed) 
.get(articles.list) 
.put(articles.killuserbyid) 
.delete(articles.delete); 

現在,只有GETPUTDELETE請求的路由處理程序。 POST請求沒有路由處理程序,所以您的服務器發出404錯誤,因爲它無法找到路由處理程序來響應POST請求/api/kill

嘗試修改你的路線,像下面,看看你是否得到迴應

app.route('/api/kill').all(articlesPolicy.isAllowed) 
.get(articles.list) 
.post(...) // replace ... with appropriate route handling function 
.put(articles.killuserbyid) 
.delete(articles.delete);