我正在收到我的Angular页面的POST请求,这可能看起来像:
https://www.myangularsite.com/login
"POST /login HTTP/1.1
token: randomstring"
我的app模块看起来像
export const routes: Routes = [
{ path: 'login', component: LoginComponent },
{ path: '', redirectTo: 'login', pathMatch: 'full' },
{ path: '**', redirectTo: 'login', pathMatch: 'full' }
];
@NgModule({
declarations: [
LoginComponent,
AppComponent
],
imports: [
BrowserModule,
HttpClientModule,
RouterModule.forRoot(routes, {errorHandler: errorLogger } )
],
bootstrap: [ AppComponent ]
})
export class AppModule { }
我的问题是Angular应用程序不接受POST方法请求,只接受GET。 页面显示
Cannot POST /login
我正在通过 ng服务运行网络服务器。是否可以将其设置为侦听POST请求?我无法将收到的请求更改为GET。
即使它是POST请求,它也不是后端调用。它在授权后调用(类似于oauth),因此它应该在登录后显示页面。
答案 0 :(得分:1)
You can use node.js Express as your CLI server. Please see the post at http://tattoocoder.com/angular2-giving-your-cli-server/ on how to do that.
然后在您的express server.js中,您可以收听登录后的请求:
var express = require("express");
var bodyParser = require("body-parser");
var app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.get('/',function(req,res){
res.sendfile("index.html");
});
app.post('/login',function(req,res){
var user_name=req.body.user;
var password=req.body.password;
console.log("User name = "+user_name+", password is "+password);
res.end("yes");
});
app.listen(3000,function(){
console.log("Started on PORT 3000");
})