2011-07-23 34 views
9

utilizo la función jquery.ajax para publicar datos de extensión de Chrome Google a mi servicio web como código de abajo:jQuery.ajax en una extensión de Google Chrome

$.ajax({ 
      type: "POST", 
      url: serviceUrl, 
      data: data, 
      success: function(msg){ 
       if(typeof(Me.config.onSumitted) == "function"){ 
        Me.config.onSumitted(msg); 
       } 
      }, 
      error: function(){ 
       if(typeof(Me.config.onError) == "function"){ 
        Me.config.onError(); 
       } 
      } 
     }); 

pero me da un error:

XMLHttpRequest cannot load http://todomain.com/Service.asp. Origin http://fromtabdomain.com is not allowed by Access-Control-Allow-Origin. 

¿cómo puedo resolverlo?

Respuesta

11

Puede echar un vistazo a esta página para lograr lo que quiere:

http://code.google.com/chrome/extensions/xhr.html

Se trata sólo de la configuración de permisos ...

+0

¿Mi respuesta fuera útil para usted? Si es así, considere aceptarlo por favor ... – ChristopheCVB

+0

esto no funciona para mí, ¿alguna idea de por qué? mi llamada ajax es exitosa, la insignia se actualiza pero la notificación no funciona. –

0

su porque same origin policy conjunto crossDomain true (ISE jQuery versión 1.5 o superior)

$.ajax({ 
      type: "POST", //or GET 
      url: serviceUrl, 
      data: data, 
      crossDomain:true, 
      cache:false, 
      async:false, 
      success: function(msg){ 
       //do some thing 
      }, 
      error: function(jxhr){ 
       alert(jxhr.responseText); 
       //do some thing 
      } 
     }); 
+0

Intento como dijiste, pero no resuelve mi problema. –

+0

¿recibe el mismo error? ¿has intentado con 'type: 'GET''? – Rafay

+0

Gracias por su respuesta, pero quiero publicar datos en mi servicio. –

0

que utilizar AJAX nativa para resolver este problem.you puede hacer eso con los pasos siguientes.

ajax = function(options, callback) { 
    var xhr; 
    xhr = new XMLHttpRequest(); 
    xhr.open(options.type, options.url, options.async || true); 
    xhr.onreadystatechange = function() { 
    if (xhr.readyState === 4) { 
     return callback(xhr.responseText); 
    } 
    }; 
    return xhr.send(); 
}; 
8

es necesario agregar un permiso para que el archivo manifest.js

"permissions": [ 
    "http://www.yourwebsite.com/" 
    ], 
+2

Aparece un error: URL desconocida o mal formada – user6031759

+0

Asegúrese de incluir la barra al final, de lo contrario no funcionará. – joe

Cuestiones relacionadas