2

YouTube Data API v2を使用する Google Chrome 拡張機能を開発しました。スクリプトは youtube.com の下のページに挿入され、タブにもアクセスする必要があるため、マニフェストの許可フィールドは次のようになります。

"permissions": ["tabs", "*://*.youtube.com/*"]

これは、リクエストがhttp://gdata.youtube.com/に対して行われるため、YouTube Data API v2へのリクエストを行うときにも機能するため、同じドメインです。しかし、今は YouTube Data API v3に移行しており、リクエストはhttp://www.googleapis.com/youtube/v3/に対して行う必要があります ( HTTP ではなくHTTPSにも注意してください)。しかし、驚くべきことに、新しい許可を追加しなくても、私の要求は完全に機能しています

問題ではないように思われることを尋ねていることはわかっていますが、個人的には、ソフトウェアで理解できない動作はすべて問題だと考えています。なぜこれが起こるのですか?"*://*.googleapis.com/*"API への XMLHttpRequest リクエストが機能するように、アクセス許可を追加する必要はありませんか?

これについては、推測の王様もいます:HTTP Access Control headers。私のリクエストはOriginvalue のヘッダーを送信しますchrome-extension://myExtensionId。また、API からの回答には、次のヘッダーも含まれています。

Access-Control-Allow-Origin: chrome-extension://myExtensionId

しかし、これが、マニフェストで定義された追加のアクセス許可なしで Chrome がクロスオリジン XMLHttpRequest の実行を許可している理由でしょうか? 確かではありません。明らかに、これは Google API、YouTube Data API v3、または Chrome 拡張機能の開発者向けドキュメントのどこにも記載されていません。

4

1 に答える 1