javascript跨域请求数据常见的几个变通的方法

跨域问题是由浏览器安全性限制而引起的,可以采取变通的方法解决。
方法一,采用动态创建<script type="text/javascript" src="http://另外一个域名/gaga.aspx?user=muyannian&pwd=nottellyour"></script>
 而这个aspx可以返回一段JS数据,来回调调用页面中的一个JS方法  比如说  showmessage("返回成功"); 这样可以达到隐性提交的目的。(在跨域下可以实现JAX同样的效果)。但这种方法由于URL长度的限制,不能提交太大的数据,和不能进行POST请求,而且你还要又B域的输出控制权。
方法二,直接把表单提交,提交的页面处理完毕后他直接太跳转下,同时把相关信息在提交给相同的域名下的一个文件,由本域名下的文件做输出这样其实就是同域了。不过这种方法编程会很复杂,流程控制很麻烦。
方法三,采用ASPX文件做桥的方式,比如说 你想在A上请求B域名上的文件b,则你可以通过在A上请求A上的文件a,a在服务器端请求B下的b,a文件相当于做了个中装,这样在有些网站上是不可取的,因为效率不高,相应很慢,还耗费服务器带宽等资源。
方法四,采用FLASH做桥,这种情况只能用在你可以控制A域和B域的情况,因为你需要在B域的根目录上放置一个crossdomain.xml,否则flash不能进行跨域请求。as中是可以做HTTP的get和POST请求的,甚至可以实现socket连接(很多的在线TM和无刷聊天室都是借助FLASH来实现的),如果处理的好可以用他来代替AJAX不能处理跨域的问题
方法五,如果你的域名是另外一个域名的子域名则可以通过设置document.domain来指定当前域名所属的域,这样两个域就互为信任,以前试验过有点不可靠,不建议怎么做。
这几个方法是在实际项目过程总碰到的,,可能有不对的地方,大家不要拍我啊 。 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值