OS X仪表板小组件中的AJAX会话Cookie

时间:2012-04-20 16:39:49

标签: jquery ajax macos widget dashboard

我正在为OS X开发一个Dashboard小部件。使用AJAX我正在与一个远程API进行交互。我正在使用jQuery来简化ajax实现。我正在使用的API需要登录并使用正常的会话cookie。我成功登录但由于没有登录而进行后续的AJAX调用失败。似乎widget / 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
        }
    });
}

2 个答案:

答案 0 :(得分:0)

我在研究其他问题时遇到了这个问题的解决方案。

Phonegap App communicate with Rails 3 App using authentication

答案 1 :(得分:0)

感谢您分享您的回答:

xhrFields: {
  withCredentials: true
}

然而,对我来说,在Dashcode中有用的是设置窗口小部件属性>网络/磁盘访问> 允许外部文件访问 选中。我一直在寻找存储浏览器cookie的方法,最后通过系统地切换这个和“withCredentials”,似乎withCreds对我没有任何作用,而允许外部文件访问是关键。

希望这有帮助。