MEAN stack / angularjs发布请求失败

时间:2016-08-23 12:08:08

标签: javascript angularjs post mean-stack

我想让服务器接受我的帖子请求,因为我想在/ api / kill上发布一些数据。

出于某种原因它无法正常工作。我怎样才能让它发挥作用?

我通过以下链接下载了Mean堆栈的最新版本: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)

我的代码:

在我的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: '*'
    }]
  }]);
};

list-articles.client.controller中的ArticlesListController函数:

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

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

    vm.testing = function() {



            ArticlesService.test();



    }




  }

,最后我的文章服务功能(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;

  }

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题/问题,则在向/api/kill中的article.server.routes.js发出POST请求时收到404错误

如果我错了,请纠正我,但您的代码中的当前路线是:

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

目前,GET PUTDELETE请求只有路由处理程序。 POST请求没有路由处理程序,因此您的服务器发出404错误,因为它找不到路由处理程序来响应对POST的{​​{1}}请求。

尝试修改您的路线,如下所示,看看您是否收到回复

/api/kill