我需要编写一个谷歌小工具,可以从谷歌小组中读取供稿。麻烦的是我正在进行ajax调用以检索供稿,而我们的谷歌应用程序域受CAS(中央身份验证服务)保护。所以,我在拨打电话时遇到了400个错误请求。
我怀疑浏览器在进行ajax调用时没有发送cookie。 如何确保cookie也随ajax调用一起发送? 要么 如果这不应该是问题,我需要做什么?
答案 0 :(得分:1)
如果您正在进行普通的AJAX调用(至少使用jQuery),如果域和子域都不匹配,请求将失败。也就是说,如果您从app.mydomain.com
致电cas.mydomain.com
,则该请求将无效。
在my testing中,即使在AJAX通话中,浏览器也会按照您的预期正确发送Cookie。
还要确保您在呼叫的两端(应用程序和CAS服务器)使用相同的协议(HTTP或HTTPS)。
如果您在Firefox中使用Firebug,您应该会看到与请求一起发送的Cookie。如果他们没有出现在那里,那么你可能需要挖掘其他东西。
这可能是有益的a similar question。
答案 1 :(得分:0)
JASIG CAS消息列表讨论了使用JSESSIONID来克服跨域ajax调用限制。
我有similar question询问是否有其他方法。
答案 2 :(得分:0)
$.ajax({
type: 'post',
dataType: 'script',
url:'/some url',
data:{},
beforeSend: function(xhr) {
xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
}
我有一些像这样的问题,认为cas不能使用ajax,但我发现在rails 3内容属性应该发送给帖子请求
你可能面对同样的事情。我已经分享了哪些帮助了我。