origin google extensions extension domain crossdomain cross corss control chrome allow google-chrome-extension xmlhttprequest google-chrome-devtools

google-chrome-extension - google - xmlhttprequest cors



Otro Cross-XHR relacionado (1)

¡Lo tengo!

En realidad, el problema es que estoy tratando de realizar solicitudes de XHR en la página de devtools y parece que no tengo permisos para eludir las políticas de acceso de origen cruzado, como una página emergente.

Los intentos de la pestaña Devtools tampoco son correctos.

editar

Es un permiso de etapa relacionado. No es un permiso de comodín. Como ya he dicho, he logrado realizar consultas en algunos dominios, pero no los tengo explícitamente en mi matriz de permisos.

El problema realmente radica en el tipo de secuencia de comandos en ejecución.

El mismo script, si se usa como ventana emergente, funciona bien. ¡Así que lo probé como script de fondo con éxito también! Estaba enfrentando el problema de que devtools_page y related no tienen esos permisos ...

Las API disponibles para las páginas de extensión dentro de la ventana Herramientas de desarrollador incluyen todos los módulos devtools enumerados anteriormente y la API chrome.extension. Otras API de extensión no están disponibles para las páginas de Herramientas de desarrollador, pero puede invocarlas enviando una solicitud a la página de fondo de su extensión, de forma similar a cómo se hace en las secuencias de comandos de contenido.

http://developer.chrome.com/extensions/devtools.html

Ese nivel de script niega xhrs cruzados no explícitos.

Resolvió el problema al colocar las solicitudes en una secuencia de comandos de fondo y al usar la API de mensajes .

¡Gracias!

Sé que hay un montón de preguntas sobre "no permitido por Access-Control-Allow-Origin". error.

Pero he probado algunos de ellos sin éxito. :(

Algunas citas:

  • Estoy intentando construir una extensión dev-tools-tab
  • Puedo tocar la API de Flickr como muestra el ejemplo
  • No puedo contactar al servidor local

Ya probé varios comodines de permisos

http://localhost/ http://*/ *://*/

Ya probé las extensiones empacadas y sin empaquetar

actualmente, manifest.json tiene

"version": "0.0.1", "manifest_version": 2, "devtools_page": "components/devtools.html", "permissions": [ "http://*/" ]

devtools.html

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <script src="../js/devtools.js"></script> </body> </html>

y, devtools.js

(function (window) { "use strict"; var xhr1, xhr2, url; xhr1 = new window.XMLHttpRequest(); xhr2 = new window.XMLHttpRequest(); xhr1.onreadystatechange = function () { if (this.readyState === 4) { console.log(''flickr ok''); } }; xhr2.onreadystatechange = function () { console.log(this.readyState); if (this.readyState === 4) { console.log(this.responseText); } }; url = ''https://secure.flickr.com/services/rest/?'' + ''method=flickr.photos.search&'' + ''api_key=90485e931f687a9b9c2a66bf58a3861a&'' + ''text='' + encodeURIComponent(''cats'') + ''&'' + ''safe_search=1&'' + ''content_type=1&'' + ''sort=interestingness-desc&'' + ''per_page=20''; xhr1.open(''get'', url, true); xhr1.send(); url = ''http://apache.local''; xhr2.open(''get'', url, true); xhr2.setRequestHeader(''Origin'', url); xhr2.send();

Salida de la consola de Chrome:

1 devtools.js:12 Refused to set unsafe header "Origin" devtools.html:1 XMLHttpRequest cannot load http://apache.local/. Origin chrome-extension://nafbpegjhkifjgmlkjpaaglhdpjchlhk is not allowed by Access-Control-Allow-Origin. devtools.html:1 4 devtools.js:12 flickr ok devtools.js:8

Versión de Chrome: 28.0.1500.20 dev

Gracias en cualquier consejo.