`

Ajaxadr ajax跨域请求crossdomain

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

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

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

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


Java Code:
 String jsoncallback=request.getParameter("jsoncallback");
 //与请求中jsoncallback对应
 ...
 out.print(jsoncallback+"("+
                 "Message"
           +")");

正种方式的关键在于如下:
      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。
下面是我的例子
<form name="cross_domain_demo">     
<input name="title" type="text" value="">  
</form>       
<a href="javascript:AjaxCrossDomainRequest('"http://www.forwhat.com', 'POST', 'cross_domain_demo', 'callbacktome()');">Submit</a>  
  
<script type="text/javascript">     
function callbacktome(){     
    alert(AjaxCrossDomainResponse);     
}     
</script>     
  
<script type="text/javascript" src="/demo/ajaxcdr/ajaxcdr.js"></script> 

这种方式看起来大费周折,但是如果跨域情况多的话,可以采用。很不错的 。
第一篇技术性文章,如有不妥之处,希望大虾们能慷慨指出 。
分享到:
评论

相关推荐

    利用JQuery jsonp实现Ajax跨域请求json数据

    本篇文章将详细讲解如何利用jQuery的jsonp方法实现Ajax跨域请求,以及如何在服务器端使用.Net的*.handler和WebService来返回JSON数据。 首先,理解JSONP的基本原理。JSONP是一种非官方的协议,通过动态创建`...

    解决ajax跨域请求问题

    然而,跨域请求是Ajax的一个常见问题,由于浏览器的同源策略限制,Ajax请求只能向与当前页面同源的服务器发送。本文将深入探讨如何解决Ajax跨域请求的问题。 首先,理解“同源策略”是解决问题的关键。同源策略是...

    Jquery跨域Ajax请求测试

    crossDomain: true, success: function(response) { console.log("成功获取数据:", response); }, error: function(jqXHR, textStatus, errorThrown) { console.error("请求失败:", textStatus, errorThrown);...

    ajax跨域请求WebService.asmx

    【Ajax跨域请求WebService.asmx】是一个常见的Web开发技术应用场景,主要涉及到JavaScript的Ajax技术、C#编程语言以及ASP.NET的WebService组件。Ajax(Asynchronous JavaScript and XML)是一种在不刷新整个页面的...

    ajax跨域请求jsonp前后台代码

    基于ajax方式的跨域请求jsonp的前后台代码

    ajax跨域请求demo.zip

    5. `crossDomain`: 如果设置为`true`,则允许跨域请求。 6. `success`: 请求成功后的回调函数,接收服务器返回的数据。 7. `error`: 请求失败时的回调函数。 在实际代码中,可能会看到类似这样的jQuery Ajax调用: ...

    flash跨域策略文件crossdomain.xml配置详解以及防范措施.docx

    7. 对于不需要跨域访问的站点,可以考虑不在根目录下放置 crossdomain.xml 文件,以默认拒绝所有 Flash 跨域请求。 总结,Flash 跨域策略文件 crossdomain.xml 是控制 Flash 应用程序跨域访问的关键。正确配置 ...

    ajax跨域请求

    ### AJAX跨域请求详解 #### 一、引言 在Web开发中,由于浏览器的同源策略限制,AJAX请求通常只能向同源服务器发送请求。然而,在实际应用中,跨域请求的需求非常常见。本篇文章将通过一个具体的示例(JSP页面+后台...

    ajax处理跨域请求

    在jQuery中,使用$.ajax()方法发起AJAX请求时,可以设置`crossDomain`参数为`true`来开启跨域请求。例如: ```javascript $.ajax({ url: 'http://example.com/api/data', // 跨域的URL type: 'GET', crossDomain...

    jsonpajax跨域请求

    AJAX本身不支持跨域,但是通过CORS(Cross-Origin Resource Sharing,跨源资源共享)机制,可以实现AJAX的跨域请求。服务器需要在响应头中添加`Access-Control-Allow-Origin`字段,允许指定的源进行跨域请求。...

    juery mobile使用ajax跨域请求服务器的小实例

    同时,`crossDomain: true`表明这是一个跨域请求。 在服务器端,为了允许来自不同源的请求,你需要配置CORS策略。这通常通过设置HTTP响应头`Access-Control-Allow-Origin`、`Access-Control-Allow-Credentials`等来...

    html通过 ajax jsonp跨域请求接收和传送数据

    1. **AJAX跨域**: 通常,AJAX请求受到同源策略限制。为实现跨域,我们可以使用CORS(Cross-Origin Resource Sharing)机制。服务器需要在响应头中添加`Access-Control-Allow-Origin`字段,允许特定的源进行跨域访问...

    ajax跨域解决办法

    5. **Flash跨域**:虽然Flash已逐渐被淘汰,但在过去,它可以通过`crossdomain.xml`文件来允许跨域请求。不过,这种方法需要Flash插件支持,且不适用于移动设备。 6. **Domain属性(仅限子域)**:在cookies中设置`...

    Ajax跨域请求解决方案-JSONP

    然而,Ajax技术在实现动态网页交互时常常需要跨越这个限制,这时就引入了JSONP(JSON with Padding)作为跨域请求的一种解决方案。本文将详细介绍JSONP的工作原理以及如何在ASP.NET网站开发中应用JSONP解决Ajax跨域...

    ajax 跨域请求问题 jquery jsonp

    **Ajax跨域请求问题与jQuery JSONP解析** 在Web开发中,Ajax技术被广泛用于实现页面的异步更新,但浏览器的同源策略(Same-Origin Policy)限制了Ajax请求只能向同源(协议、域名、端口均相同)的服务器发送。这在...

    ajax跨域请求调用webservice接口+视频教程

    【标题】"Ajax跨域请求调用WebService接口"是一个关键的技术点,主要涉及到Web开发中的异步数据交互和跨域安全策略。在Web应用程序中,Ajax(Asynchronous JavaScript and XML)技术允许我们在不刷新整个页面的情况...

    flash跨域crossdomain

    flash跨域crossdomain 设置项使用,直接可用允许全部跨域请求

    demo跨域ajax_DEMO_ajax跨域_

    本示例“demo跨域ajax_DEMO_ajax跨域”着重解决C#后端与JavaScript前端之间的跨域限制。这里我们将深入探讨什么是跨域、为何会产生跨域问题以及如何通过C#和Ajax实现跨域通信。 首先,我们需要了解什么是跨域。根据...

Global site tag (gtag.js) - Google Analytics