2016-12-02 10 views
1

こんにちは私は、リダイレクトされたWebページのURLを取得する方法を見つけようとしています。JS - リダイレクトのURLを取得する方法

私のウェブブラウザに「http:foo.com」というURLを入力すると、「http://foo.com/bar」にリダイレクトされます。

フェッチなどを使用して「http://foo.com/bar」を返信するにはどうすればよいですか? (URLを受け取ろうとしているウェブサイトがCORSポリシーでブロックされています:要求されたリソースに「Access-Control-Allow-Origin」ヘッダーがありません」

アイデア/ソリューション。

答えて

0

あなたが。XMLHttpRequestfetch黙ってリダイレクトをたどることができず、最終URLに関する情報は、その後のオブジェクトで使用できません。

その情報が利用可能であったとしても、Same Origin Policyからあなたを妨げますそれにアクセスする(the error message indicates)。


代わりにサーバー側のテクノロジを使用してください。

+0

これにサーバー側の技術をおすすめできますか?私は実際にseneca.jsマイクロサービス内でそれをしようとしています。申し訳ありませんが、私はさらに説明しなければなりません。 – KMongiello

+0

Fetchで 'redirect'を別の処理に設定できます。 https://fetch.spec.whatwg.org/#requestredirect応答が成功すると、応答オブジェクトを調べることによって最終的なURLが何であるかを判断することもできます。 – Brad

+0

Node.jsでSenecaで実行していた場合は、ブラウザ固有のエラーであるCORSエラーメッセージが表示されません。これを行うにはNodeを使用できるはずです。 – Quentin

-1

http://foo.com/bar」には、現在のURL「http://foo.com/bar」が表示されますか?もしそうなら、javascriptを使用して:あなたは、以前のURL「http://foo.com/」(リダイレクトの前にreferalを)取得したい場合

alert(location.href); 

しかし、その後、あなたはサーバー側の言語を使用する必要があります。

それとも、あなたは、クエリ文字列に戻ってURLを含めるようにリダイレクト方法を変更する場合は、「http://foo.com/」「http://foo.com/bar?back=http%3A%2F%2Ffoo.com%2F」にリダイレクトし、バックパラメータとデコードを取得するためにhttps://stackoverflow.com/a/901144/271433のようなものを使用してから、サーバーサイト言語を使用して防ぐことができます

+0

あなたの努力に感謝しますが、これは私が求めていたものではありません。あまりにも曖昧であることに対する謝罪。私は、httpリクエストを通じて第三者のサイトからリダイレクトのURLを取得しようとしていました。私はそれをサーバ側で行うことで簡単に実装することができました。 – KMongiello

+0

ああ、サーバー側である必要がありますが、ファイアウォールによっては参照ヘッダーが削除されることがあります。あなたもそれを処理する必要があります。 –

関連する問題