2012-04-20 52 views
1

我正在为OS X开发仪表板小部件。使用AJAX我正在与远程API交互。我正在使用jQuery来简化ajax实现。我正在使用的API需要登录并使用正常的会话cookie。我正在成功登录,但由于没有登录而执行后续的AJAX调用失败。看起来widget/jQuery/ajax没有存储/使用会话cookie。我错过了什么?OS X仪表板小部件中的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 
     } 
    }); 
} 

回答

0

感谢您分享自己的答案:然而

xhrFields: { 
    withCredentials: true 
} 

对于我来说,什么Dashcode中的工作被设置小部件属性>网络/磁盘访问>允许外部文件访问检查。我一直在寻找一种方式来存储浏览器cookies,并通过系统地切换这个和“withCredentials”,最终,似乎与Creds没有为我做任何事情,而允许外部文件访问是关键。

希望这会有所帮助。

+0

奇怪的是,对我而言,这些选项都不起作用。也许我的仪表板小部件配置中缺少一些东西,因为我最初手工构建它而不是Dashcode。有趣的是在Dashcode中,小部件工作/运行良好,但保存为“* .wdgt”文件并部署到仪表板,它无法工作会话不持久,但它在Dashcode中。我的项目在这里:https://github.com/daluu/autosmsclients/tree/master/macosx – David 2015-04-19 01:47:41