2016-07-15 16 views
0

私は特急ルータとPUT/API /チェックアウトのルートを処理しています: this.router.put('/:id/checkout', (req, response, next) => { /*...*/ });エクスプレスルータのルートハンドラでPUTリクエストをPOSTリクエストにリダイレクトする方法は?

今、私は方法を探していますPOSTリクエストがPUTを扱う見込ん一つが異なるサードパーティのサービスでお支払いの異なる種類を扱ういてPOST要求を第三者のサービスエンドポイントに実行することによって要求を送信する。それ、どうやったら出来るの ?

この時点で、request.postで直接POSTリクエストを実行しました。

この時点での課題は、リソースが移動したレスポンスをどのように処理するかです。

request.post({ 
    url : 'https://paymentgateway.com/charge', 
    form : { 
    product_id  : product_id, 
    amount   : amount 
    } 
}, (err, httpResponse, body) => { 

私はここに来る応答がhttpResponse.statucCode === 302body === <html><head><title>Object moved</title></head><body>です。これをどう対処するか分かりません。同じリクエストパラメータを持つHTMLフォームは自動的にクライアントをリダイレクトURLにリダイレクトします。

+0

クライアントがあなたのサーバーに 'PUT'リクエストを行っている場合、代わりに別のサーバーへの' POST'要求を行うことはできません(少なくともHTTP応答コード30Xのように)。既に行っているようにリクエストをプロキシすることは実行可能な解決策です。 – robertklep

+0

私が今直面している課題は、プロキシされた要求がリダイレクトステータスコード302を返すことです。それをどのように処理するか分かりません。 – MobileDream

+0

'followAllRedirects'を' true'に設定しない限り、 'request'は非GETリクエストに対して発行されたリダイレクトに従いません。 – robertklep

答えて

0

httpResponseをクライアントに返信して、チェックアウト処理を要求するとジョブが実行されます。クライアントはリダイレクトを自動的に処理します。

関連する問題