0

Chromeの拡張機能からのAJAXOriginエラーを処理する方法はありますか?

chrome-extension://kldbdjcbjohfhddpicldkbifbkcdanid/data.jsonの読み込みを拒否します。拡張機能の外部のページでリソースをロードするには、リソースをweb_accessible_resourcesマニフェストキーにリストする必要があります。

私はこれを試しました:

$.ajax({
    url: 'chrome-extension://kldbdjcbjohfhddpicldkbifbkcdanid/data.json',
    datatype: 'json',
    success: function(xhr) {
        alert('ok');
    },
   erro r: function(xhr, status, err) {
        alert('status: ' + xhr.status + ' - ' + err);
    }
});

しかし、変数には何もありません。エラーステータスは「0」、エラーメッセージは空です。

4

2 に答える 2

0

jsonp形式を使用してみることができます。これは多くの場合、クロスオリジンエラーを回避します。

$.ajax({
    url: 'chrome-extension://kldbdjcbjohfhddpicldkbifbkcdanid/data.json',
    datatype: 'jsonp',
    success: function(xhr) {
        alert('ok');
    },
   erro r: function(xhr, status, err) {
        alert('status: ' + xhr.status + ' - ' + err);
    }
});
于 2013-02-05T21:39:21.480 に答える
0

エラーに基づいて、コンテンツ スクリプトからこのリソースを読み込もうとしているようです。

個々の拡張リソース、または拡張リソースに一致するパターンを明示的にマニフェストに追加する必要がありますweb_accessible_resources。エラーメッセージには、これが解決策であることが示されています。

これが完了したら、 を使用して URL を作成できますchrome.extension.getURL(resourcePath)

これが私のマニフェストからの抜粋です:

"web_accessible_resources" : [
    "*.html"
]

HTML テンプレート ファイルを要求するために使用しているコードは次のとおりです。

var url = chrome.extension.getURL("template.html");
$.get(url,function(data, textStatus, jqXHR){
    console.log("Got the template!");
    console.log(data);
},"html");
于 2014-03-11T11:37:32.843 に答える