Comencé una nueva extensión basada en una versión anterior, que he escrito antes y que funciona correctamente ahora. El esquema de hacer xhr es bastante normal para las extensiones de Google Chrome: el script de contenido llama a chrome.extension.sendRequest (datos, devolución de llamada), y la solicitud real entre sitios se realiza en backround.html.Tengo un sitio en los "permisos", pero sigo obteniendo "Origin chrome-extension: // abc no está permitido por Access-Control-Allow-Origin".
Además, me he asegurado de que el sitio solicitado se haya agregado a la sección de "permisos" de manifest.json.
Sin embargo, la consola de background.html muestra: "... Origin chrome-extension: // .. no está permitido por Access-Control-Allow-Origin".
La pregunta es la siguiente: excepto por no tener el dominio de destino en los "permisos" (lo he intentado incluso aquí), ¿QUÉ MÁS puede causar este error?
Éstos son algunos fragmentos de código esenciales:
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);
PD: Se me olvidó mencionar, también existe el siguiente error en la consola de backround.html:
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 tiene alguna idea de lo que significa este mensaje y qué parte de mi el código podría causarlo ... Los guiones, mencionados aquí, no son míos.
Parece que no puedo encontrar el problema a primera vista, pero ¿sabía que puede [ahora] (http://blog.chromium.org/2011/07/chrome-extensions-now-with -more.html) ¿emite un XHR directamente desde su script de contenido? – ronme
Debería iniciar el depurador con "Pausa en excepción no detectada" habilitada para encontrar el código que causa el error 'No se puede leer la propiedad 'length''. –
> pero ¿sabía que ahora puede emitir un XHR directamente desde su script de contenido? ¡Sí, funciona ahora sin el proxy background.html! – pilat