在网页站点使用Ajax访问CAS保护网址时,报not allowed access错误的解决方法

在使用Ajax访问CAS保护的网址时会报一下的错误: 

(1)XMLHttpRequest cannot load https://zhangsan-pc:8443/cas/login?service=http%3A%2F%2Fzhanshan-PC%3A8090%2Fgtportal%2FCASUserInfoServlet. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8090' is therefore not allowed access.

(2)NetworkError: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'http://localhost:8090/gtportal/CASUserInfoServlet?callback=feedBackState&_=1422262265310'."

解决方法:

(1)修改cas客户端的过滤方法,如果你访问的服务不是怎么重要的信息时就可以使用此方法,修改client的org.jasig.cas.client.authentication包下面的AuthenticationFilter,在该类里面doFilter方法中判断一下如果该路径是你不需要过滤的地址就直接返回,该地址可以在web.xml中进行配置。AuthenticationFilter的修改详细见附件。

(2)还有一个问题是Ajax的跨域问题引起的,在这种情况下,可以使用js的<script>标签来代替Ajax.可以动态的向页面添加<script>.代码如下:

/**通过script标签向服务端发出请求 * */
function getUserInfo()
{
var script = document.createElement("script");
   script.type = "text/javascript";
    script.src = "../../CASUserInfoServlet?callback=initMenu";
    document.getElementById('ipotalHeader_new').appendChild(script);

}
,


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值