私は角2 HTTP経由の単純なPOSTリクエストを作ってみましたし、要求が正しく送信されないようですが、ここで私は、POSTリクエストを送信するために使用するコードはPOSTリクエストを送信しない:角度2が正しく
import { Injectable } from '@angular/core';
import { Http, Response, Headers, RequestOptions } from '@angular/http';
import 'rxjs/add/operator/map';
/** ... */
public sendData(s: string, k: any) {
let h = new Headers();
h.append('Content-Type', 'application/json');
h.append('Accept', 'application/json');
let content = JSON.stringify({
username: s,
key: k
});
console.log(content);
return this.httpService.post(SERVER_URL, content, {
headers: h
})
.map((res: Response) => {
return res.json();
});
}
次のように
と(活字体で)Expressサーバのためのコードは次のとおりです。
public handleWhitelistRequest(req: Request, res: Response) {
let out: boolean;
console.log("post request received"); //DEBUG
if (req.body.key) {
out = wl.submit(req.body.username, req.body.key);
} else {
out = wl.submit(req.body.username, {});
}
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.json({
username: req.body.username,
success: out
});
}
はwl
は、それが唯一のconst
定義されて、何であるかを心配しないでください。 上記のAngular 2コードを呼び出してリクエストを送信すると、「CORS」というエラーメッセージが表示されます。これは、上記のようにヘッダーを追加することによって処理する必要があると考えられます。 さらに、'post request received'メッセージは、私に関係するコンソールに記録されていません。
エキストラ詳細と私が行っていることをデバッグします:
- をしても「ポスト要求を受け」ログイン、意図したとおりに動作し、サーバにPOSTリクエストを送信するためにポストマンを使用しました。
- GET要求は意図したとおりに動作します(角度からも)。
私はこの問題が角度のコードで正しくコンテンツを送信しない可能性がありますが、私は100%確実ではないと思います。ご協力いただきありがとうございます。
どのように呼びますか?私はあなたのヘッダーがリクエストに設定されていないと感じています... –
@MikeTungはsendData関数を呼び出していますか?私は次のようにします: 'this.ps.sendData(s、key).subscribe((data:any)=> {this.lastReq = data.success?" wl-succ ":" wl-fail ";} )} ' –
ヘッダのネットワークチェックタブ –