2017-02-26 12 views
0

私のサービスでは、Webサーバーを2回呼び出すメソッドが1つしかない角度2のアプリケーションを1回呼び出す必要があります。 session.service.ts角度2の投稿要求が二回行われました

createSession(sessionName:any) 
{ 
    return this._http.post(this._sessionUrl + "/create/"+sessionName.sessionName,{}).map((res: Response) => res) 
    .do(data => console.log('Session created')) 
    .catch(this.handleError); 
} 

及び成分

createSession(name: string): void { 
    this._sessionService.createSession(name).subscribe(
    () => this.RedirectToSessionPage(), 
    () => this.ShowError() 
    ); 

}

においてI)の読み取り及び(.publishを加える試みられてきたに

。参照カウント()と.share()は、サーバーに2回移動します。誰もそれを解決する方法を知っていますか?

+0

投稿したコードコードではolyではありません。問題を再現したプランを投稿してください。 –

+1

OPTIONSプリフライトで混乱していませんか? – jonrsharpe

+0

どのようなセッションを作成していますか? –

答えて

0

@jonrsharpeは、プリフライトのOPTIONSリクエストとそれに続くPOSTの両方が表示されているように思えます。 プリフライトは、リモートサーバ(角度2のフロントエンドと同じ場所にないサーバ)からのデータにアクセスするときに使用されます。クロスオリジン要求に対してサーバーがどのようにアクセスできるかを決定します。 (CORS)

これが何が起こっているかを確認する最も簡単な方法は、どのブラウザの開発ツールを使用するかです(ChromeのF12キーを押して[ネットワーク]タブに移動し、httpリクエストが行われたのを見る)。

これはあなたにそれがOPTIONSその後、POST(CORS)、またはあなたが実際に二度同じ呼び出しを行っている場合だ場合の目安与えるべきである(plunkrはおそらく必要とされる場合を!)

希望は申し訳ありません、助けこれが明らかだったら!

+0

もう一つの選択肢は、https://www.wireshark.org/のようなサードパーティのソフトウェアを使って、実際に何が起こっているかを見るためにネットワークトラフィックを監視することです。私はそれがプリフライト要求(かなり混乱している可能性があることに同意する:D) –

+0

ありがとう、私は今日しよう! – JonR

関連する問題