Заголовок «Авторизация» из разных источников с помощью jquery.ajax()

Я пытаюсь отправить домен из другого источника и добавить собственный заголовок «Авторизация». Пожалуйста, смотрите код ниже.

Ошибка:

XMLHttpRequest не может загрузить {url}. Поле заголовка запроса Авторизация не разрешена 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());
}

Я также пробовал:

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

в запросе ajax.

Может быть, инфраструктура jquery-ajax блокирует аутентификацию между источниками? Как это исправить?

Обновление:

Кстати: есть ли более безопасный способ сохранить auth.key на стороне клиента, чем в файле cookie? getToken() будет заменен более сложным методом, хеширующим тело, дату и т.д.

40
задан abatishchev 22 October 2015 в 21:35
поделиться