Expressjs 405 POST method not allowed

Shr*_*awa 4 node.js express angularjs

Route perfectly works well from POSTMAN chrome extension, with Angular it doesn't.

Well here goes my Express js code :

var express = require('express');
var router = express.Router();
var app = express();
var bodyParser = require('body-parser')
var routes = require('./routes');
var connection  = require('express-myconnection');

app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded

/** Serve our app on root path */
app.use('/', express.static('app'));

/** Login API */
app.post('/login', routes.login);
Run Code Online (Sandbox Code Playgroud)

And here goes Angular code:

$http({
    method: 'POST',
    url: apiUrl + 'login',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded' // necessary for expressjs
    },
    transformRequest: function(obj) {
        var str = [];
        for (var p in obj) {
            str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
        }
        return str.join("&");
    },
    data: user
});
Run Code Online (Sandbox Code Playgroud)

Not sure whats wrong! This is what I get :

在此处输入图片说明

mpo*_*red 5

尝试检查两个请求的标头和内容,两者之间肯定存在差异。您的响应Allow标头显然不包含 POST,因此那里可能存在一些 CORS 问题。