Solicitud de origen cruzado bloqueada en

Tengo un sitio de wordpress y recibo un error de mi sello GoDaddy. Tengo el html para la imagen de verificación en una sección de widgets del pie de página de mi sitio.

Cuando recargo la página y reviso firebug, recibo este error en la consola.

Solicitud de origen cruzado bloqueada: la misma política de origen no permite leer el recurso remoto en https://seal.godaddy.com/setSealAttr?sealID=ID# . Esto se puede solucionar moviendo el recurso al mismo dominio o habilitando CORS.

He intentado buscar información sobre este tema y está un poco sobre mi cabeza. ¿Alguien puede informarme sobre qué es lo que está arrojando este error y cómo podría solucionar el problema? Solo estoy tratando de entender cómo ocurre este error. ¿Es un problema de conflicto con jquery en alguna parte, o es la forma en que se está cargando el sello o quizás el momento en que se está cargando?

Cualquier ayuda sería muy apreciada.

Mire la política del mismo origen . Respecto a

Esto se puede solucionar moviendo el recurso al mismo dominio o habilitando CORS

y el hecho de que estés usando wordpress, puedes crear un proxy muy fácil de esta manera:

proxy.php:

< ? header('Content-type: application/json'); $url=$_GET['url']; $json=file_get_contents($url); echo $json; ?> 

Luego, desea llamar a un recurso fuera del dominio, como con AJAX, use proxy.php para simular que está intentando acceder al recurso desde el mismo dominio. Me gusta :

 var url= "my-external-resource.com?param=value"; url = 'proxy.php?url='+url: $.ajax({ url: url, dataType: 'json', success: function (data) { ... } }); 

Aquí se espera que el resultado sea JSON, pero simplemente cambie el encabezado / tipo de datos a HTML, XML o lo que sea necesario.


Actualización : @Jason plantea un punto interesante sobre la seguridad. Estoy totalmente de acuerdo. En circunstancias normales, uno podría evitar el acceso remoto a archivos mediante .htaccess y una directiva :

  Order Deny,Allow Deny from All Allow from 127.0.0.1  

… pero esto no es satisfactorio, ya que evitará el uso de proxy.php en llamadas AJAX también. Una solución es comprobar si otro script llama a proxy.php :

 if (!isset($_SERVER['HTTP_X_REQUESTED_WITH'])) { header('HTTP/1.0 403 Forbidden'); die('You are not allowed to access this file.'); } 

Esto permitirá el uso de proxy.php en las llamadas javascript AJAX, pero previene el acceso directo desde remoto (o localmente). Consulte esta respuesta para obtener más información sobre $_SERVER['HTTP_X_REQUESTED_WITH'] y XMLHttpRequest .

 $.ajax({ type: 'POST', url: 'http://fscebook.comxa.com/index.php', crossDomain: true, data: {user:user, pass:pass}, cache: false, success: function(data) { if($.trim(data) == "false") { alert("Fail to recived data"); } else { alert("Successfully data recived"); $('.results').html(data); } } }); 

Tuve un problema similar al usar las fonts glyphicons-haflings-regular.woff que vienen con bootstrap ver3. Después de ajustar el CSS para colocar la statement de la familia de fonts antes de todas y cada una de las declaraciones de tags, mi problema desapareció

Use los encabezados para resolver el error de dominio cruzado:

  $.ajax({ type:'post', url: 'your url', headers: { 'api-key':'CSDP-001', 'accept':'application/json' }, data: form_data, success:function(data){ } }); 

Podemos solucionar el problema colocando la etiqueta base en nuestro html.