簡體   English   中英

MEAN Stack / AngularJS發布請求失敗

[英]MEAN stack/angularjs post request failure

我正在努力讓服務器接受我的發布請求,因為我想在/ api / kill上發布一些數據。

由於某種原因,它將無法正常工作。 我該如何運作?

我通過以下鏈接下載了Mean Stack的最新版本: 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)

因此,如果route是:

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中的invokeRolesPolicies

    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();



    }




  }

最后是我的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;

  }

如果我正確理解了您的問題/問題,則在對article.server.routes.js /api/kill發出POST請求時收到404錯誤

如果我錯了,請糾正我,但是您當前在代碼中的路線是:

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

就目前而言,只有用於GET PUTDELETE請求的路由處理程序。 沒有POST請求的路由處理程序,因此您的服務器發出404錯誤,因為它找不到路由處理程序來響應對/api/kill POST請求。

嘗試將您的路線修改為如下所示,然后查看是否得到響應

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM