Założyłem nowe rozszerzenie bazując na starszym, które napisałem wcześniej i które działa poprawnie teraz. Schemat tworzenia xhr jest całkiem normalny dla rozszerzeń Google Chrome: wywołania skryptu treści chrome.extension.sendRequest (dane, wywołanie zwrotne), a faktyczne żądanie między lokacjami odbywa się w backround.html.Mam witrynę w "uprawnieniach", ale wciąż otrzymuję "Origin chrome-extension: // abc jest niedozwolone przez Access-Control-Allow-Origin."
Ponadto upewniłem się, że żądana strona jest dodana do sekcji "permissions" pliku manifest.json.
Jednak konsola pliku background.html wyświetla: "... Początkowe rozszerzenie chrome: // .. nie jest dozwolone przez Access-Control-Allow-Origin."
Pytanie jest następujące: z wyjątkiem braku domeny docelowej w "uprawnieniach" (tak naprawdę wypróbowałem nawet tutaj), CO ELSE może spowodować ten błąd?
Oto niektóre istotne fragmenty kodu:
manifest.json:
{
"name": "Register quote",
"version": "0.0.2",
"permissions": [ "<all_urls>" ],
"background_page" : "background.html",
"content_scripts": [
{
"matches": [
"http://somedomain.com/*"
],
"css": ["register_quote.css"],
"js": ["jquery-1.3.2.min.js", "register_quote.user.js"]
}
]
}
background.html:http://pastebin.com/0zLArvfA
register_quote.user.js:
// here's the final call, how it's prepared by the content script after all:
chrome.extension.sendRequest({
'action': 'sendAjaxRequest',
'url': "http://somedomain.com/the_script.php"
'dataStr': "is_chrome=Y&ticketid=123123123&user=Vladimir+Mityukov&action=get_quoteids"
}, arg_callback);
PS: Zapomniałem wspomnieć, istnieje również następujący błąd w konsoli backround.html za:
Error in event handler for 'undefined': TypeError: Cannot read property 'length' of undefined
at setupPageActionEvents (chrome/ExtensionProcessBindings:424:36)
at chrome/ExtensionProcessBindings:1021:5
at [object Object].dispatch (chrome/EventBindings:182:28)
at Object.<anonymous> (chrome/EventBindings:237:25)
Don'e mają żadnego pojęcia, co oznacza ten komunikat i co część mojego kod może spowodować to. Skrypty, o których tutaj mowa, nie są moje.
Nie mogę znaleźć problemu na pierwszy rzut oka, ale czy wiesz, że możesz [teraz] (http://blog.chromium.org/2011/07/chrome-extensions-now-with -more.html) wydaje XHR bezpośrednio ze swojego skryptu treści? – ronme
Powinieneś uruchomić debugger z włączonym opcją "Zatrzymaj przy niezałatwionym wyjątku", aby znaleźć kod powodujący błąd "Nie można odczytać długości właściwości". –
> ale czy wiesz, że możesz teraz wydać XHR bezpośrednio ze swojego skryptu treści? Yay, działa teraz bez background.html proxy! – pilat