好吧,它看起来像我在我的最初问题上犯了一个错误。所以,这里有一些更正。答案仍然适用,因为当协议更改为HTTPS(SSL)时,第二次重定向会停止。浏览器不遵循来自AJAX响应的重定向(PHP生成的响应使用CAS认证)
在我的情况下,我有一个重定向发生多次,浏览器不遵循第二个重定向。 遵循第一个重定向,但返回错误。
我一直在阅读包含重定向的JavaScript AJAX响应自动跟随,但它看起来不像我的情况。浏览器自动跟随第一个重定向,并且第一个重定向被返回,而不在第一个重定向之后。我的问题是,我希望浏览器自动跟踪所有重定向。
重定向是phpCAS库的一部分。我有一个用PHP编写的API,每次在返回结果之前都会检查用户身份验证。
这是序列。最重要的是要注意的是浏览器返回第二个响应后,遵循1重定向。我宁愿它一路走完,并返回最后的响应,当我拨打localhost/example/api
的AJAX电话。
本地主机/例如使用jQuery.ajax
- 呼叫
localhost/example/api
()
响应1:本地主机/示例/ API
- 重定向到
https://localhost/accounts/cas/login?service=api.example.com&gateway=true
(使用SSL)。
响应2:(SSL)本地主机/帐户/ CAS /登录服务= api.example.com &网关=真
- 当查询键 '网关' 存在,则登录只需重定向到“服务”密钥提供的URL,无论是否有票证(以表示服务用户已登录或未登录)。
响应3:本地主机/ API票= TICKET
- 验证票和重定向回本身没有票。
响应4:本地主机/ API
- 这次CAS客户端着眼于$ _SESSION记住什么票了,然后处理API请求返回JSONP。
没有什么特别的原因我在OpenID或OpenAuth(orization)上使用CAS。CAS只是我能够在WordPress中工作的第一个认证模块。我接受使用不同身份验证库,CMS,框架等方面的建议。尽管我希望完成此项目。所以重新加工越少越好。
什么你知道,我一会儿在计算器上进行搜索后发布了这个问题。然后,发布问题后,我做了另一个搜索,并在StackOverflow上找到类似的问题。 http://stackoverflow.com/questions/2961051/cas-authentication-and-redirects-with-jquery-ajax – 2012-04-06 18:36:13
它看起来像因为第二个响应使用不同的协议(SSL),并且子域是不同的,那么会解释错误。我想这意味着浏览器是在重定向之后进行的,而不是在有些事情发生变化时(不管是prototocol还是subodmain?或者两者都有),并且数据不会在响应中返回(否则,可能会在此时添加JSONP响应。 ..我必须尝试一下......叹息。) – 2012-04-06 18:40:33