2011-08-27 3 views
0

私はRuby on Rails v3.0.9とjQuery 1.6を使用しています。 I am using a JavaScript function(承認された回答を参照)ので、一部のWebサイトからfavicon.icoアイコンイメージを取得します。WebサイトがHTTPリクエストをリダイレクトするときにAJAXを使用して 'favicon.ico'イメージを取得するにはどうすればよいですか?

http://www.gmail.comリンクを除いて、すべてが正常に動作していることがわかりますが、301 Moved PermanentlyというHTTPステータス応答が得られます。

enter image description here

私はリダイレクトを追跡して、「リダイレクト」URLにfavicon.icoアイコンイメージを見つけようとするので、this JavaScript codeを改善したいと思います。ファビコンイメージを正しく取得するには、そのコードをどのように改善できますか?

答えて

2

JavaScriptに間違いありません。ブラウザーでfavicon.icoにアクセスしようとすると、アイコンが表示されないことがわかります。 301リダイレクトはhttp://mail.google.com/mail/を指しています。これはG-Mailの受信トレイに過ぎません。この場所に画像はありません。これはcurl -iの結果です。

HTTP/1.1 301は恒久的に移動

場所:

Gメールhttp://mail.google.com/mail/はただ何もありませんので、自分の受信トレイに人を取るしようとしています。 G-Mailのfavicon.icoの実際の場所はhttps://mail.google.com/mail/images/2/mail_icon_32.pngで、これはHTMLソースのmetaタグで設定します。 G-Mailの出典:

<link rel="icon" href="images/2/mail_icon_32.png" sizes="32x32"> 

詳細については、hereを参照してください。

+0

あなたが正しいですが、私が 'http:// www.gmail.com'のURLを考えた場合、質問にリンクしたJavaScriptコードはfaviconを正しく取得しません。この理由から、リダイレクトを「フォロー」してから、faviconを取得しようとします。 – Backo

+1

@Backo何をフォロー? 301は画像ではなくHTMLにリダイレクトしています。あなたは、HTMLを取得し、解析し、メタタグを抽出する必要があります。 URLを絶対URLなどにしてください。ただし、origin-policyを越えてクライアント側で本当に可能なものはありません。 – vcsjones

+0

JavaScriptコードの実装でこのような状況をどのように処理するかについての例を教えてください。リクエストがリダイレクトされてからHTMLコードを解析する場合は、* img.onerror *イベントのチェックを参照していると思います。 – Backo

関連する問題