我需要编写一个谷歌小工具来读取来自谷歌群组的提要。问题是我正在调用 ajax 来检索提要,而我们的谷歌应用程序域受 CAS(中央身份验证服务)保护。所以,我在拨打电话时收到了 400 个错误请求。
我怀疑浏览器在进行 ajax 调用时没有发送 cookie。如何确保 cookie 也与 ajax 调用一起发送?或者,如果这不应该是问题,我需要做什么?
如果您正在进行普通的 AJAX 调用(至少使用 jQuery),如果域和子域都不匹配,则请求将失败。也就是说,如果您从app.mydomain.com
to调用cas.mydomain.com
,该请求将不起作用。
在我的测试中,浏览器将按照您的预期正确发送 cookie,即使在 AJAX 调用中也是如此。
还要确保您在呼叫的两端(应用程序和 CAS 服务器)使用相同的协议(HTTP 或 HTTPS)。
如果您在 Firefox 中使用 Firebug,您应该会看到 cookie 与请求一起发送。如果他们没有出现在那里,则可能会发生其他事情,您必须进行挖掘。
这是一个类似的问题,可能会有所帮助。
$.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你面临同样的事情。我已经分享了帮助我的方法。