在 Spotify(Javascript)中进行 ajax 调用后没有保存 Cookie?
Posted
技术标签:
【中文标题】在 Spotify(Javascript)中进行 ajax 调用后没有保存 Cookie?【英文标题】:Cookie not being saved after an ajax call in Spotify (Javascript)? 【发布时间】:2012-08-09 18:38:59 【问题描述】:我正在开发一个 Spotify 应用程序,并且我也在尝试使用 JQuery 的 $.ajax 函数登录 Reddit。登录有效,我可以在开发工具中看到响应 cookie,但是当我尝试访问 Reddit 的 API 的任何部分时,它需要通过调用发送登录 cookie,它失败了,看起来 cookie 从未被发送。此外,查看开发工具的“Cookies”部分显示该网站(应用)没有 Cookie。
这是登录调用:
$.ajax(
type: 'POST',
url: 'http://www.reddit.com/api/login',
data:
'user': $user,
'passwd': $password
,
success: function()
alert("logged in!");
);
这是投票电话(从我可以在开发工具中看到的 cookie 复制的用户哈希):
$.ajax(
type: 'POST',
url: 'http://www.reddit.com/api/vote',
data:
'id': $id,
'dir': 1,
'uh': $userhash
,
success: function(data)
console.log(data);
);
【问题讨论】:
【参考方案1】:使用 jQuery 1.5.1 中添加的 xhrFields 属性可能会有所帮助:
登录调用:
$.ajax(
type: 'POST',
url: 'http://www.reddit.com/api/login',
data:
'user': $user,
'passwd': $password
,
xhrFields:
withCredentials: true
,
success: function()
alert("logged in!");
);
投票电话:
$.ajax(
type: 'POST',
url: 'http://www.reddit.com/api/vote',
data:
'id': $id,
'dir': 1,
'uh': $userhash
,
xhrFields:
withCredentials: true
,
success: function(data)
console.log(data);
);
这将告诉它将 XMLHTTPRequest 对象的 withCredentials 属性设置为 true,这是在使用跨域 AJAX 调用时传递 cookie 所必需的。
【讨论】:
我试过了,但它似乎根本没有改变行为。我需要更改有关通话的其他任何内容吗?以上是关于在 Spotify(Javascript)中进行 ajax 调用后没有保存 Cookie?的主要内容,如果未能解决你的问题,请参考以下文章
使用 spotify-web-api-js 在 javascript 中获取 Spotify 艺术家的热门曲目
Spotify javascript API - 在播放列表中获取歌曲的类型
在 Spotify API Javascript + 添加到服务器中搜索曲目
setImage 不使用 Spotify Apps API 在 JavaScript 中显示新图像
Spotify 应用程序中的 Facebook Javascript SDK,可能吗?
允许前端 JavaScript POST 请求到 https://accounts.spotify.com/api/token 端点