Aureliaのフェッチクライアントを使用して、すべてのGETおよびPOSTリクエストにカスタムヘッダーを追加しようとしています。 (app.jsコンストラクタで)次のコードは、ベースURLを設定するために動作しますが、ヘッダーは私が望むように動作していません。Aureliaフェッチリクエストにカスタムヘッダーを追加する
constructor(httpClient) {
// set up httpClient
httpClient.configure(config => {
config
.withBaseUrl(localsettings.api)
.withDefaults({
credentials: 'include',
headers: {
'my_appkey': 'f2eabc5e7de-a4cdc857e'
}
})
});
this.httpClient = httpClient;
}
使用法:Chromeの開発ツールを通じ
this.httpClient.fetch(suburl, {
credentials: 'include'
}).then(response => { ... });
、私は「my_appkey」ヘッダが存在するが、それは自分のヘッダだとして、それが作成されていないと、その値が表示されていないことがわかります。
リクエストヘッダ:
OPTIONS /index.php/api/v1/keys HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Access-Control-Request-Method: GET
Origin: http://localhost:9000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
Access-Control-Request-Headers: my_appkey
Accept: */*
Referer: http://localhost:9000/
Accept-Encoding: gzip, deflate, sdch, br
Accept-Language: en-US,en;q=0.8,es-419;q=0.6,es;q=0.4
私は間違っていますか?カスタムヘッダーをAccess-Control-Request-Headers
に移動するのはなぜですか?リクエストにmy_appkey
ヘッダを追加
これを分析すると、おそらくカスタムヘッダーを追加する方がリクエストの速度が遅くなるため、最善の方法ではありません(プリフライト要求によってレイテンシが増えるようです)。すべてのリクエストでappkeyを渡すより速い方法は何でしょうか?それを体の一部として含めるだけですか? – LStarky
ええ、余分なリクエストを避けたいのであれば、ヘッダーの代わりにリクエスト本体の一部としてappkeyを送信するのが最も簡単な方法でしょう。あなたが本当に速くしたいのであれば、APIエンドポイントと同じサーバー/原点でアプリケーションコードをホストすることができます – sideshowbarker
もしそれらが同じサブドメイン(例えばmyapp.school.edu)でホストされていたならば、fetchは必要のないヘッダーを送りますプリフライトリクエストを行うには? – LStarky