[英]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
PUT
和DELETE
請求的路由處理程序。 沒有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.