关于ajax跨域请求问题解决

         作为一个主攻服务端的程序员,在配合前端开发人员工作时到json作为系统间交互的手段,自然就伴随着众多ajax请求,随之而来的就是要解决 ajax的跨域问题。本篇是遇到跨域不知道是跨域问题,到知道是跨域问题不知道如何解决,再到解决跨域问题,最后找到两种方法解决ajax 跨域问题的全过程。

      是跨域问题?服务端解决?

     在配合web客户端开发时,提供他们一些API接口。当时特别困惑,在本人电脑访问相应的url可正常回返json数据,但是在与客户端对接时使用 ajax请求同样的url则一点儿反应都没有,好像什么都没有发生一样。这样反反复复改来改去好久都没能解决,当时想到可能是ajax跨域问 题,于是就将这个问题当做跨域问题来解决了。

        知道问题的确切原因,剩下的就是找到解决问题的方法了。知道jQuery的ajax有jsonp这样的属性可以用来解决跨域的问题。

        如果客户端通过jsonp解决了,那本文就没得写了。
            可能客户端尝试了很久还没成功,在加上项目紧急,这个问题就由我们服务端来解决。

      服务端如何解决跨域?

  找了好久,原来服务端也是好解决的,本项目用的是tomcat服务器,原来只要在tomcat中加两个包就可以了。
 1.在apache-tomcat\lib 下添加 cors-filter-1.7.jar 和 java-property-utils-1.9.jar
 2.找到项目的web.xml文件在其中加入以下配置:
     <filter>   


     <filter-name > CORS </filter-name >   


     <filter-class > com.thetransactioncompany.cors.CORSFilter </filter-class >   


    <init-param >   


           <param-name > cors.allowOrigin </param-name >   


         <param-value > * </param-value >   


     </init-param >   


     <init-param >   


      <param-name > cors.supportedMethods </param-name >   


         <param-value > GET, POST, HEAD, PUT, DELETE </param-value >   


     </init-param >   


     <init-param >   


      <param-name > cors.supportedHeaders </param-name >   


         <param-value > Accept, Origin, X-Requested-With, Content-Type, Last-Modified </param-value >   


     </init-param >   


     <init-param >   


         <param-name > cors.exposedHeaders </param-name >   


         <param-value > Set-Cookie </param-value >   


     </init-param >   


     <init-param >   


         <param-name > cors.supportsCredentials </param-name >   


         <param-value > true </param-value >   


     </init-param >   


    </filter>   


    <filter-mapping >   


     <filter-name > CORS </filter-name >   


     <url-pattern > /* </url-pattern>   


    </filter-mapping>

  3.重新打包部署到该服务器上就可以解决ajax跨域问题了

   以上就是本人在开发实践中成功的解决ajax跨越问题的办法,或许还有更好的办法,等待大家分享了



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值