我正在为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
}
});
}
答案 0 :(得分:0)
我在研究其他问题时遇到了这个问题的解决方案。
Phonegap App communicate with Rails 3 App using authentication
答案 1 :(得分:0)
感谢您分享您的回答:
xhrFields: {
withCredentials: true
}
然而,对我来说,在Dashcode中有用的是设置窗口小部件属性>网络/磁盘访问> 允许外部文件访问 选中。我一直在寻找存储浏览器cookie的方法,最后通过系统地切换这个和“withCredentials”,似乎withCreds对我没有任何作用,而允许外部文件访问是关键。
希望这有帮助。