Angular 5 POST请求我的页面

时间:2017-11-15 14:06:57

标签: angular post routing

我正在收到我的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),因此它应该在登录后显示页面。

1 个答案:

答案 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");
})