2015-04-17 247 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問題。