5

私はこれがここで何度も話されていることを知っています、そして私はこれらのスレッドのほとんどを読みました、しかし私は私のスクリプトを動かすことができないようです。

問題は、GoogleChrome拡張機能のURLを短縮するためにbitlyapiを使用しようとしていることです。ユーザーのログインとapiKeyをローカルストレージに保存しています。保存する前に、ユーザーを検証します。

そのためのコードは次のとおりです。

$.ajax({
        url:"http://api.bit.ly/v3/validate",
        dataType:'jsonp',
        data:{
            login: login,
            apiKey: apiKey,
            x_login :"test",
            x_apiKey :"test"
        },
        success:function (jo, textStatus, jqXHR) {
            if (jo.status_code == 200) {
                setItem('dg_BitlyApiKey', apiKey);
                setItem('dg_BitlyLogin', login);
                alert('Saved');
            } else {
                alert('Incorrect login and/or apiKey!')
            }
        }
    });

権限を設定していますが、"permissions": ["tabs", "notifications", "http://*/*", "https://*/*"]それでも次の情報を取得し続けます。

Refused to load script from 'http://api.bit.ly/v3/validate?callback=jQuery17204477599645033479_1334062200771&login=&apiKey=&x_login=test&x_apiKey=test&_=1334062201506' because of Content-Security-Policy.

スクリプト自体は拡張機能の外部で機能するため、問題はスクリプト内ではなく、権限にあると思います。

私はここで何が間違っているのですか?

4

3 に答える 3

6

問題は、実際にはXHRリクエストを実行しておらず、安全でないHTTPリソースに対してJSONPリクエストを実行していることです。拡張ポップアップ内に外部JavaScriptをロードする方法と関連するChromiumバグレポートの質問を参照してください。

ええ、拡張機能で安全でないスクリプトを許可しなくなりました。HTTP経由でスクリプトをロードすると、アクティブなネットワーク攻撃者が拡張機能にスクリプトを挿入する可能性があります。これはセキュリティの脆弱性です。

JSONPは、ページに新しいスクリプトタグを動的に追加してから、コンテンツを実行することで動作します。あなたの場合、スクリプトリソースは(HTTPSではなく)HTTPを介してフェッチされます。拡張機能がバージョン2の拡張機能マニフェストを使用している場合、そのバックグラウンドページは非HTTPSスクリプトをフェッチできません。

解決策: HTTPS経由でBitly APIを使用している場合は、問題が解決すると思います。 (の現在の値の代わりに)にAjax呼び出しを送信しますhttps://api-ssl.bitly.com/v3/validatehttp://api.bit.ly/v3/validate

于 2012-04-10T17:13:30.897 に答える
0

クロスドメインリクエストを機能させるには、アプリ/拡張機能をパッケージ化する必要があります。ホストされているアプリケーションは、クロスドメインリクエストを実行できません。見る:

Chrome拡張機能のクロスオリジンXMLHttpRequest

于 2012-04-10T13:04:56.867 に答える
0

Chrome拡張機能でクロスオリジンリクエストを行うには、コンテンツスクリプトでクロスオリジンフェッチを回避する必要があります。

あなたがhttps://stackoverflow.com/a/56929473/3680164で見つけることができる完全な答え

またはドキュメント https://www.chromium.org/Home/chromium-security/extension-content-script-fetches

于 2019-07-08T06:38:40.897 に答える