首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >平均堆栈/angularjs请求失败

平均堆栈/angularjs请求失败
EN

Stack Overflow用户
提问于 2016-08-23 12:08:07
回答 1查看 74关注 0票数 0

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

由于某种原因,无法工作。我怎样才能让它工作呢?

我通过以下链接下载了均值堆栈的最新版本:https://github.com/dickeyxxx/mean-sample

首先,我尝试编辑文章模块。

代码语言:javascript
复制
var promise = $http.put('/api/kill', null);

答复:

代码语言:javascript
复制
angular.js:11756 PUT SITE:3000/server-error 404 (Not Found)

第二次尝试:

代码语言:javascript
复制
var promise = $http.post('/api/kill', null);

返回:

代码语言:javascript
复制
angular.js:11756 POST SITE:3000/api/kill 404 (Not Found)

(只有当路线是:

代码语言:javascript
复制
  app.route('/api/kill').all(articlesPolicy.isAllowed)
    .get(articles.list)
    .put(articles.killuserbyid)

因此,如果路线是:

代码语言:javascript
复制
app.route('/api/kill').all(articlesPolicy.isAllowed)
.get(articles.list)
.post(articles.killuserbyid)

它会归还原物:

代码语言:javascript
复制
angular.js:11756 PUT SITE:3000/server-error 404 (Not Found)

我的代码:

在我的article.server.routes.js中,我确实有:

代码语言:javascript
复制
    '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 in articles.server.policy:

代码语言:javascript
复制
    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函数:

代码语言:javascript
复制
  ArticlesListController.$inject = ['ArticlesService','$scope'];

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

    vm.testing = function() {



            ArticlesService.test();



    }




  }

最后,我的工件服务函数(articles.client.service)

代码语言:javascript
复制
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;

  }
EN

回答 1

Stack Overflow用户

发布于 2016-08-23 18:53:58

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

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

代码语言:javascript
复制
app.route('/api/kill').all(articlesPolicy.isAllowed)
.get(articles.list)
.put(articles.killuserbyid)
.delete(articles.delete);

目前,只有用于GET PUTDELETE请求的路由处理程序。POST请求没有路由处理程序,因此您的服务器发出一个404错误,因为它找不到路由处理程序来响应POST请求到/api/kill

尝试将您的路由修改为如下所示,并查看是否得到响应。

代码语言:javascript
复制
app.route('/api/kill').all(articlesPolicy.isAllowed)
.get(articles.list)
.post(...) // replace ... with appropriate route handling function
.put(articles.killuserbyid)
.delete(articles.delete);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39100746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档