Estoy tratando de enviar un dominio de origen cruzado y agregar un encabezado de 'Autorización' personalizado. Consulte el código a continuación.origen cruzado 'Autorización' encabezado con jquery.ajax()
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?
Actualización:
Por cierto: ¿existe un método más seguro para almacenar el 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.
Su método 'getToken()' no devuelve nada. – istepaniuk