ajax通过cas调用

时间:2009-12-11 12:24:07

标签: ajax cookies cas

我需要编写一个谷歌小工具,可以从谷歌小组中读取供稿。麻烦的是我正在进行ajax调用以检索供稿,而我们的谷歌应用程序域受CAS(中央身份验证服务)保护。所以,我在拨打电话时遇到了400个错误请求。

我怀疑浏览器在进行ajax调用时没有发送cookie。 如何确保cookie也随ajax调用一起发送? 要么 如果这不应该是问题,我需要做什么?

3 个答案:

答案 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内容属性应该发送给帖子请求

你可能面对同样的事情。我已经分享了哪些帮助了我。