打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Ajaxadr ajax跨域请求crossdomain
最近工作需要用到ajax跨域请求参数,网上找很很久,最终得到解决之道。分享一下吧,希望能帮到各位


也许你已经发现在浏览器直接敲路径能获得对方提供接口的参数,而一到项目中Ajax请求却老是失败。原因是,浏览器出于安全考虑,是不允许JavaScript代码进行跨域操作。
话不多说,直入正题:
据我所知,解决ajax跨域请求问题有3种,

1).直接用一个java类向跨域项目请求参数,然后Ajax只想自己项目的对应java类发送请求。
你想到了吗 ? 呵呵
这个够简单了,而且可以实现,但是这样做的我们自己也会觉得这样的方式怪“怂”的。
相面看第二中方法

2).
这中方式主要是通过JS和Java类的一个配合,条件是提供接口方必须与请求方关系紧密,要不人家可愿意为了你的需求来改动接口类
JS方面:
Js代码  
  1. $.getJSON("http://www.forwhat.com?jsoncallback=?",  
  2.         function(data){  
  3.         alert(data);  
  4.         });  
  5.     


Java Code:
Java代码  
  1. String jsoncallback=request.getParameter("jsoncallback");  
  2. //与请求中jsoncallback对应  
  3. ...  
  4. out.print(jsoncallback+"("+  
  5.                 "Message"  
  6.           +")");  

正种方式的关键在于如下:
      1、请求地址加参数:jsoncallback=?

      2、服务器段把jsoncallback的值作为方法名传回来,如JQUET098788(...)


3).
第三种方式
AJAXCDR:利用 Flash 完美解决 JavaScript 和 AJAX 跨域 HTTP POST/GET表单请求
这种方式比较强大,即不用懂java类也不需要对象的配合。
这种方式浏览器兼容性好,支持IE、Firefox、谷歌Chrome等多种浏览器。

条件是需要其他域的根目录下有一个crossdomain.xml文件,文件中设置允许所有域名或允许本域访问即可。
crossdomain.xml 文件为:http://api.bz/crossdomain.xml,不需要改动。
AJAXCDR下载地址: http://blog.s135.com/demo/ajaxcdr/ajaxcdr-1.0.zip  
AJAXCDR 拥有两个文件:ajaxcdr.js 和 ajaxcdr.swf,下载后需要在ajaxcdr.js中配置ajaxcdr.swf的路径,不详说了,相信这个难不倒你。
AJAXCDR 拥有一个 JavaScript 函数 AjaxCrossDomainRequest() 和一个全局变量 AjaxCrossDomainResponse。
下面是我的例子
Java代码  
  1. <form name="cross_domain_demo">       
  2. <input name="title" type="text" value="">    
  3. </form>         
  4. <a href="javascript:AjaxCrossDomainRequest('"http://www.forwhat.com', 'POST', 'cross_domain_demo', 'callbacktome()');">Submit</a>    
  5.     
  6. <script type="text/javascript">       
  7. function callbacktome(){       
  8.     alert(AjaxCrossDomainResponse);       
  9. }       
  10. </script>       
  11.     
  12. <script type="text/javascript" src="/demo/ajaxcdr/ajaxcdr.js"></script>   

这种方式看起来大费周折,但是如果跨域情况多的话,可以采用。很不错的 。
第一篇技术性文章,如有不妥之处,希望大虾们能慷慨指出 。 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
AJAX 跨域请求
基于Ajax和JSON从javascript中调用后台java方法的JsonGateway
AJAX DWR基本使用向导
jQuery 跨域访问问题解决方法_jquery_脚本之家
使用Google Analytics跟踪捕获JavaScript,AngularJS,jQuery的在线错误和异常
王建硕: ajax
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服