Файл cookie сеанса AJAX в виджете панели управления OS X

Я разрабатываю виджет Dashboard для OS X. Используя AJAX, я взаимодействую с удаленным API. Я использую jQuery для упрощения реализации ajax. API, с которым я работаю, требует входа в систему и использует обычные файлы cookie сеанса. Я успешно вхожу в систему, но выполнить последующий вызов AJAX не удается из-за того, что я не вошел в систему. Похоже, что виджет/jQuery/ajax не хранит/не использует файл cookie сеанса. Что мне не хватает?

function login(e,p) {
    $.ajax({
        url: url + "sessions.json",
        type: "POST",
        data: {
            login: e,
            password: p
        },
        success: function(res) {
            getProjects();
        },
        dataType: 'json',
        xhrFields: {
            withCredentials: true
        }
    });
}

function getProjects() {
    $.ajax({
        url: url + "projects.json",
        type: "GET",
        data: {
        },
        success: function(res) {

            console.log(res);
        },
        dataType: 'json',
        xhrFields: {
            withCredentials: true
        }
    });
}

person jasonlfunk    schedule 20.04.2012    source источник


Ответы (2)


Я наткнулся на решение этой проблемы, исследуя что-то еще.

Приложение Phonegap взаимодействует с приложением Rails 3 с использованием аутентификации

person jasonlfunk    schedule 24.08.2012

Спасибо, что поделились своим ответом:

xhrFields: {
  withCredentials: true
}

Для меня, однако, в Dashcode работало то, что для параметра Атрибуты виджета > Доступ к сети/диску > Разрешить доступ к внешним файлам значение флажок. Я искал какой-то способ хранить файлы cookie браузера, и, систематически переключая это и «withCredentials», в конце концов, кажется, что withCreds ничего не сделал для меня, тогда как «Разрешить доступ к внешним файлам» был ключом.

Надеюсь это поможет.

person texas-bronius    schedule 02.01.2014
comment
Странно, что у меня ни один из этих вариантов не работает. Возможно, чего-то не хватает для моей конфигурации виджета панели инструментов, поскольку я изначально создал его вручную, а не Dashcode. Забавно, что в Dashcode виджет работает/работает нормально, но сохраняет его как файл *.wdgt и развертывает на приборной панели, если он не работает из сеанса, который не сохраняется, но работает в Dashcode. Мой проект находится здесь: github.com/daluu/autosmsclients/tree/master/macosx - person David; 19.04.2015