`
lumingming1987
  • 浏览: 113402 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

jquery ajax跨域访问

 
阅读更多

基于Jquery的Ajax跨域访问

单点登录服务器(sso服务器)

令牌认证服务器(令牌服务器)

 

登录网页项目的时候,由于使用了单点登录,所以页面会跳转到sso服务器,进行统一登录,

现在需要在该界面增加令牌的认证,但是SSO服务器和令牌服务器部署在不同的服务器,且暂时没有要合并的可能,所以在SSO登录的时候必须要对令牌进行验证,就必须涉及到了跨域访问的问题。

最开始不了解跨域的概念,以为在局域网中就没有跨域,毕竟对外的域名都是统一的,所以直接使用

js代码 at  SSO服务器

$.ajax({
  url :http://192.168.123.10:8080/authority/identyfying.htm,
  type :"POST",
  data : {"name":name,"code":code},
  success :function(data){
    alert(data);
}
});
action代码 at 令牌服务器端

<%
Stringresult=request.getAttribute("result")==null?“”:request.getAttribute("result").toString();
String json="{result:"+result+"}";
response.getWriter().write(json);
%>
结果发现SSO服务器访问URL后的返回值的空值,但是本地实测返回肯定是有值的,猜测是防火墙问题,网段问题等等,最后终于在别人的提醒下,发现是因为跨域了。

查询了Jquery的相关API,修改如下

js代码 at  SSO服务器

$.ajax({
    url:urls,
    type: "GET",
    dataType: "jsonp",
    jsonp: "jsonpCallback",
    crossDomain : true,
    data: {“name”:name,“code”:code},
    success: function (data){
     var result = data.results;
     var msg = result?"成功":"失败,请重新输入6位令牌数字";
     $("#verify").html("动态口令验证"+msg);
    },
       error: function(xhr){
        alert("请求出错(请检查相关度网络状况.)");
    }
   });


action代码 at 令牌服务器端
<%
Stringresult=request.getAttribute("result")==null?“”:request.getAttribute("result").toString();
String callback = request.getParameter("jsonpCallback")+"({\"results\":"+results+"})";       
response.getWriter().write(callback);
%>
飘红的两处命名必须相同。

最终结果OK,可以验证了。

分享到:
评论

相关推荐

    Jquery跨域Ajax请求测试

    Jquery跨域访问Web服务的demo源码

    JQuery Ajax 跨域访问的解决方案

    我们知道ajax本身实际上是通过XMLHttpRequest对象来异步进行数据的交互,而浏览器出于安全考虑,不允许js代码进行跨域操作,所以js跨域操作会被拒绝。

    ajax跨域解决办法

    本资源主要介绍了AJAX跨域的解决办法,以及解决方案间的比较

    Jquery Ajax 跨域调用asmx类型 WebService范例代码

    摘要:Ajax 在 Web 2.0 时代起着非常重要的作用,然而有时因为同源策略 (SOP)(俗称:跨域问题(cross domain)) 它的作用会受到限制。在本文中,将学习如何克服合作限制。本文以asmx方式搭建webservice作为测试用...

    JSONP实现Ajax跨域访问

    主要从三方面来通过jsonp来实现ajax跨域问题: 1.javascript方法 2.jquery $.ajax方法 3.jquery $.getJSON方法 不看会后悔的!

    Jquery 跨域访问 具体实例

    这是一份非常有用的Jquery跨域访问实例,里面提供了3种方法,前台后台都有涉及,希望对你们会有所帮助

    jquery下利用jsonp跨域访问实现方法

    本文将给您介绍如何使用getJSON来实现异步跨域提交表单

    JQuery Ajax跨域调用和非跨域调用问题实例分析

    本文实例讲述了JQuery Ajax跨域调用和非跨域调用问题。分享给大家供大家参考,具体如下: 现在的互联网技术发展的越来越快,我们在开发过程中遇到的问题也越来越多。比如当我们需要进行跨域访问数据的时候该如何进行...

    IE8、IE9 Ajax 跨域解决办法

    解决ie8、9Ajax跨域问题(前端):jsp引入此js,Jquery Ajax正常写

    JSONP跨域GET请求解决Ajax跨域访问问题

    实现方法有多种,本例采用jQuery+Ajax,完成后,在本地调试了一切ok,但是部署到服务器上以后就出现问题了,后台服务调用没有响应,怎么回事?代码没怎么改动,唯一修改的地方就是jQuery的ajax方法中的url地址。难道...

    ajax跨域请求js拒绝访问的解决方法

    求解决办法 代码如下: ajax{ url :“http://xxxx/app”...求方法 您可能感兴趣的文章:跨域请求之jQuery的ajax jsonp的使用解惑AJAX跨域请求json数据的实现方法jQuery.ajax 跨域请求webapi设置headers的解决方案JQuer

    ajax 设置Access-Control-Allow-Origin实现跨域访问

    ajax跨域访问是一个老问题了,解决方法很多,比较常用的是JSONP方法,JSONP方法是一种非官方方法,而且这种方法只支持GET方式,不如POST方式安全。 即使使用jquery的jsonp方法,type设为POST,也会自动变为GET。如果...

    jquery中ajax处理跨域的三大方式

    HTML5中提供的XMLHTTPREQUEST Level2(及XHR2)已经实现了跨域访问。但ie10以下不支持 只需要在服务端填上响应头: header("Access-Control-Allow-Origin:*"); /*星号表示所有的域都可以接受,*/ header("Access...

    jQuery使用ajax跨域请求获取数据

    跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的内容),因为我们在日常的项目开发时会不可避免的需要进行跨域操作...

    jquery中ajax跨域方法实例分析

    本文实例分析了jquery中ajax跨域。分享给大家供大家参考,具体如下: JSONP是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问 方法一: jsonp之 get...

    jQuery跨域问题解决方案

    通过XMLHTTPRquest请求不同域上的数据,原来js跨域访问是后台有个处理路径“/test”的函数。下面给大家介绍jQuery跨域问题解决方案,有需要的小伙伴可以参考下

    浅谈JQuery+ajax+jsonp 跨域访问

    下面小编就为大家带来一篇浅谈JQuery+ajax+jsonp 跨域访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    jquery解决客户端跨域访问问题

    主要介绍了jquery解决客户端跨域访问问题,jQuery.ajax()支持get方式的跨域,这其实是采用jsonp的方式来完成的,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics