特定のリクエストを別のリクエストにルーティングするChrome拡張機能を作成しようとしています。私はそれを行う方法についていくつかのリソースを見つけました、そして私はそれが半分機能するようになりました。拡張コードは次のとおりです。
var requestRoutingTable = {
'some/url/i/want/to/catch' : 'libs/TVKeyValue.js'
};
chrome.webRequest.onBeforeRequest.addListener(function(details){
for (var key in requestRoutingTable){
if (details.url.indexOf(key) != -1){
console.log('redirecting to: ' + chrome.extension.getURL(requestRoutingTable[key]));
return {redirectUrl: chrome.extension.getURL(requestRoutingTable[key])};
}
}
}, {urls: ["<all_urls>"]}, ["blocking"]);
これが機能するかどうかをテストするために、jQueryで次のように記述し、拡張機能をロードしました。
$.getScript('some/url/i/want/to/catch', function(script, textStatus, jqXHR){
// this doesn't get here!
}
症状:
- 拡張コードのconsole.logがトリガーされるのがわかります
- 実際のファイルはChrome拡張機能を介して(開発者ツールのネットワークタブを介して)ロードされることがわかります
問題:
コールバックはトリガーされません。疑わしいことに、元のリクエストは「保留中」のステータスのままです。
この拡張機能のポイントは、特定の要求に対していくつかのスタブ/モック応答を配置することです。私は何かが足りないのですか?