Sto provando a inviare un dominio di origine incrociata e aggiungendo un'intestazione personalizzata 'Autorizzazione'. Si prega di consultare il codice qui sotto.intestazione 'Autorizzazione' cross-origine con jquery.ajax()
Errore:
XMLHttpRequest non è possibile caricare {url}. Campo di intestazione della richiesta L'autorizzazione non è consentita da 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());
}
Ho anche provato:
headers : { 'Authorization' : getToken() },
nella richiesta Ajax.
Potrebbe essere che il framework jquery-ajax blocchi l'autenticazione incrociata? Come posso risolvere questo?
Aggiornamento:
A proposito: c'è un metodo più sicuro per memorizzare l'auth.key sul lato client poi in un cookie? getToken() verrà sostituito con un metodo più complesso, hashing del corpo, data, ecc.
Il metodo 'getToken()' non restituisce nulla. – istepaniuk