我正在使用 angular 4 的默认Http
模块来发送 http 请求,没有任何问题。但是,我最近用angular2-jwt
包中的AuthHttp
替换了Http
模块。现在有了AuthHttp
,它停止在 post 请求中将正文作为有效载荷发送到服务器。这是代码:
return this.authHttp.post(url, JSON.stringify(body)).map((res: Response) => {
// ...
});
上面的代码不会将正文作为有效负载发送到服务器。当 authHttp 替换为 http 时,它会按预期发送有效负载。
不确定我是否做错了什么,因为关于这个问题的谷歌结果似乎很少。
更新:
使用AuthHttp
,Chrome Dev Tools显示仅发送了OPTIONS
请求。这真的很奇怪。
似乎AuthHttp正在向服务器发送一些奇怪的选项请求。Chrome 显示以下错误:
Response for preflight has invalid HTTP status code 400
通过在服务器上添加以下代码解决了问题:
if r.Method == "OPTIONS" {
return
}