origin falta example domain cross control cabecera allow javascript jquery ajax cross-domain

javascript - falta - origen cruzado ''Autorización'' encabezado con jquery.ajax()



jquery ajax access-control-allow-origin (1)

Este es un ejemplo de hacer una solicitud CORS. Si tiene acceso al servidor (que supongo que debe hacer, ya que se trata de una solicitud al servidor local), deberá agregar encabezados de respuesta específicos de CORS. Lo más simple es agregar los siguientes encabezados de respuesta:

Access-Control-Allow-Origin: * Access-Control-Allow-Methods: GET, POST, PUT, DELETE Access-Control-Allow-Headers: Authorization

Su servidor también debe configurarse para responder a las solicitudes HTTP OPTIONS. Puede obtener más información sobre cómo realizar solicitudes de CORS aquí: http://www.html5rocks.com/en/tutorials/cors/

Estoy tratando de enviar un dominio de origen cruzado y agregar un encabezado de ''Autorización'' personalizado. Por favor mira el código a continuación.

Error:

XMLHttpRequest no puede cargar {url}. Campo de encabezado de solicitud La autorización no está permitida por Access-Control-Allow-Headers.

function loadJson(from, to) { $.ajax({ //this is a ''cross-origin'' domain url : "http://localhost:2180/api/index.php", dataType : ''json'', data : { handler : "statistic", from : from, to : to }, beforeSend : setHeader, success : function(data) { alert("success"); }, error : function(jqXHR, textStatus, errorThrown) { alert("error"); } }); } function getToken() { var cookie = Cookie.getCookie(cookieName); var auth = jQuery.parseJSON(cookie); var token = "Token " + auth.id + ":" + auth.key; } function setHeader(xhr) { xhr.setRequestHeader(''Authorization'', getToken()); }

También probé:

headers : { ''Authorization'' : getToken() },

en la solicitud de ajax

¿Podría ser que el marco jquery-ajax está bloqueando la autenticación de origen cruzado? ¿Cómo puedo arreglar esto?

Actualizar:

Por cierto: ¿hay un método más seguro para almacenar auth.key en el lado del cliente y luego en una cookie? getToken () será reemplazado por un método más complejo, hash el cuerpo, la fecha, etc.