【强烈推荐】如何解决JQuery类Post方式的跨域问题

    博客分类:

  • 核心代码片段
jQueryjsonFlashXML工作

在很多应用场景,利用JQ的getJSON解决跨域问题是首选,非常好用,类似代码如下:

Js代码
  1. $.getJSON("http://跨域的dns/document!searchJSONResult.action?name1="+value1+"&jsoncallback=?",
  2. function(json){
  3. if(json.属性名==值){
  4. //执行代码
  5. }
  6. });
$.getJSON(" http://跨域的dns/document!searchJSONResult.action?name1="+value1+"&jsoncallback=?",
function(json){
if(json.属性名==值){
// 执行代码
}
});

但有一个问题,在我解决http://l.faqee.com/应用的时候,起初也是利用这种方式将聊天记录一键发送到用户邮箱中,后来我发觉一旦聊天记录超过2000字节以上时(在我的站点,这种情况是相当普遍的),但利用这种方式执行代码时,就会发现发送到邮箱的聊天数据是不全的,非常郁闷,查了些资料,最终我觉得可以利用Flash+js的方式来完成这个工作,也是前辈们的代码。

引用一段JQ对于解决Post方式跨域问题的申明:

写道
注意,jquey是不支持post方式跨域的.
为什么呢?
虽然采用post +动态生成iframe是可以达到post跨域的目的(有位js牛人就是这样把jquery1.2.5 打patch的),但这样做是一个比较极端的方式,不建议采用.
也可以说get方式的跨域是合法的,post方式从安全角度上,被认为是不合法的, 万不得已还是不要剑走偏锋..

附件中的代码很好的解决了这个问题,前提是客户端必须有flash,并且在服务端的根目录下放置crossdomain.xml文件即可,我在我的路过的(http://l.faqee.com/)程序测试过,效果相当好,完全可以用!

  • ajaxcdr-1.0.zip (15.2 KB)
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。