El encabezado CORS ‘Falta control de acceso-Permitir-Origen’

Estoy llamando a esta función desde mi formulario asp.net y obtengo el siguiente error en la consola Firebug mientras llamo ajax.

Solicitud de origen cruzado bloqueada: la misma política de origen no permite leer el recurso remoto en http: //anotherdomain/test.json . (Motivo: Falta el encabezado CORS ‘Acceso-Control-Permitir-Origen’).

var url= 'http://anotherdomain/test.json'; $.ajax({ url: url, crossOrigin: true, type: 'GET', xhrFields: { withCredentials: true }, accept: 'application/json' }).done(function (data) { alert(data); }).fail(function (xhr, textStatus, error) { var title, message; switch (xhr.status) { case 403: title = xhr.responseJSON.errorSummary; message = 'Please login to your server before running the test.'; break; default: title = 'Invalid URL or Cross-Origin Request Blocked'; message = 'You must explictly add this site (' + window.location.origin + ') to the list of allowed websites in your server.'; break; } }); 

Lo hice de manera alternativa, pero aún no puedo encontrar la solución.

Nota: no tengo derechos de servidor para hacer cambios en el servidor (API / URL).

Esto sucede generalmente cuando intenta acceder a los recursos de otro dominio.

Esta es una función de seguridad para evitar que todos accedan libremente a los recursos de ese dominio (a los que se puede acceder, por ejemplo, para tener una copia exacta de su sitio web en un dominio pirata).

El encabezado de la respuesta, incluso si es 200OK, no permite que otros orígenes (dominios, puerto) accedan a los recursos.

Puede solucionar este problema si es el propietario de ambos dominios:

Solución 1: vía .htaccess

Para cambiar eso, puede escribir esto en .htaccess del archivo de dominio solicitado:

   Header set Access-Control-Allow-Origin "*"  

Solución 2: establecer encabezados de la manera correcta

Si configura esto en el encabezado de respuesta del archivo solicitado, permitirá que todos accedan a los recursos:

 Access-Control-Allow-Origin : * 

O

 Access-Control-Allow-Origin : http://www.my-domain.com 

Paz y código;)

en su solicitud de Ajax, agregando:

 dataType: "jsonp", 

después de la línea:

 type: 'GET', 

debería resolver este problema …

espero que esto te ayude

Tienes que modificar tu código del lado del servidor, como se indica a continuación

 public class CorsResponseFilter implements ContainerResponseFilter { @Override public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException { responseContext.getHeaders().add("Access-Control-Allow-Origin","*"); responseContext.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); } } 

Debe haber tenido la idea de por qué está teniendo este problema después de leer las respuestas anteriores.

 self.send_header('Access-Control-Allow-Origin', '*') 

Solo tiene que agregar la línea anterior en su lado del servidor.

Su navegador no permite su solicitud .. necesita instalar el complemento de su navegador web

Para Chrome: https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en

Para Firefox https://addons.mozilla.org/en-US/firefox/addon/cors-everywhere/

La mejor forma de agregar encabezado en el lado del servidor

Access-Control-Allow-Origin: *