2015-04-17 213 views
3

从POSTMAN chrome扩展中可以很好地使用路由,使用Angular它不会。Expressjs 405不允许使用POST方法

那么这里去我快速js代码

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

而且这里去角码

$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 
}); 

不知道什么是错!这就是我得到:

enter image description here

+1

'routes.login'做了什么? –

+0

它从数据库发送用户详细信息, – Shreejibawa

+2

正确...但代码的位置在哪里。它显然没有回报你所期望的。 –

回答

4

尝试检查标题和内容两个请求,也必然是两者之间的区别。您的回复的Allow标题显然不包含POST,因此可能会出现一些CORS问题。