2

我需要编写一个谷歌小工具来读取来自谷歌群组的提要。问题是我正在调用 ajax 来检索提要,而我们的谷歌应用程序域受 CAS(中央身份验证服务)保护。所以,我在拨打电话时收到了 400 个错误请求。

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

4

3 回答 3

1

如果您正在进行普通的 AJAX 调用(至少使用 jQuery),如果域子域都不匹配,则请求将失败。也就是说,如果您从app.mydomain.comto调用cas.mydomain.com,该请求将不起作用。

我的测试中,浏览器将按照您的预期正确发送 cookie,即使在 AJAX 调用中也是如此。

还要确保您在呼叫的两端(应用程序和 CAS 服务器)使用相同的协议(HTTP 或 HTTPS)。

如果您在 Firefox 中使用 Firebug,您应该会看到 cookie 与请求一起发送。如果他们没有出现在那里,则可能会发生其他事情,您必须进行挖掘。

这是一个类似的问题,可能会有所帮助。

于 2010-06-05T20:54:31.623 回答
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 中的内容属性应该发送给 post 请求

可能b你面临同样的事情。我已经分享了帮助我的方法。

于 2012-04-17T06:41:12.463 回答
0

JASIG CAS消息列表讨论了使用JSESSIONID 来克服跨域 ajax 调用限制。

我有一个类似的问题,询问是否有其他方法。

于 2011-04-08T02:53:10.200 回答