Cross-Origin XMLHttpRequest nelle estensioni chrome

In base alle estensioni del chrome, le chiamate cross-source dell’API che utilizzano l’object XMLHttpRequest dovrebbero essere consentite se vengono impostate le autorizzazioni:

Un’estensione può comunicare con server remoti al di fuori dell’origine, purché prima richieda autorizzazioni di origine incrociata.

Sto seguendo da vicino il tutorial ma il codice qui sotto mi sta dando un messaggio di errore:

XMLHttpRequest non può caricare http://www.google.com/search?hl=it&q=ajax . Origine chrome-extension: // bmehmboknpnjgjbmiaoidkkjfcgiimbo non è consentito da Access-Control-Allow-Origin.

Non solo ho permesso la richiesta di google.com, ma ho richiesto un sito Web ma non riesco ancora a passare. Qualcuno può aiutare?

Il mio file manifest:

{ "name": "The popup", "version": "0.1", "popup": "popup.html", "permissions": [ "http://*/*", "https://*/*", "https://www.google.com/*", "http://www.google.com/*" ], "browser_action": { "default_icon": "clock-19.png", "default_title": "This is title", "default_popup": "popup.html" } } 

la chiamata effettiva:

 function sendRequest() { document.write("Sending request"); var req = new XMLHttpRequest(); req.open("GET", "http://www.google.com/search?hl=en&q=ajax", true); req.onreadystatechange = function() { if (req.readyState == 4) { if (req.status == 200) { alert(req.responseText); document.write("OK"); } } }; req.send(); } 

Due cose; è necessario assicurarsi di creare un’app / un’estensione pacchettizzata e non un’hosted. Le richieste di origine incrociata non funzioneranno con le app ospitate. Supponendo di aver bloccato quella parte, potresti voler provare a inserire quanto segue nelle tue autorizzazioni: http://*/ . Questo è l’unico che ho per una delle mie app pacchettizzate, e attraversa roba di origine senza problemi.