js动态Script跨域访问

     我们要开发一个WebGIS项目,希望实现类似Google Map API或者51ditu API的那种仅仅在用户端页面中嵌入几行脚本代码,就可以快捷,方便的实现地图发布的方式。gis技术方面基本都实现了。但是在用户端使用中发现脚本提示没有权限错误。上网了解了一下原来是由于Ajax无法跨域访问限制造成的。参考了网上的很多解决方式,目的是找到一种代替XMLHttp对象实现交互的方法。结果如下:

     1.IFrame方式:这是我们以前常用的一种交互方式,但无法实现像Google Map和51ditu的那么简洁的方式。所以被淘汰。

     2.修改服务器参数或者建立服务器代理,通过它们进行转换。我们服务器平台是Windows的,很遗憾我们不能接受这种方式。

     3.利用个别浏览器提供的跨域方式,或者要求用户手动设置IE安全权限。完全不符合我们开发人员的本性,怎么能把工作丢给用户或依赖其他浏览器呢。

     4.动态Script脚本,可以实现跨域访问,但只支持GET方式和返回XML或者Json格式的数据。虽然跟XMLHttp比较有点弱弱的感觉,但它毕竟符合我们的要求。能够达到我们的目的。而且现在暂时也只能使用这种方式。

     代码很简单:

     1.建立一个Script对象

     var so = document.createElement('SCRIPT');

     2.设置远程调用的另一个域的地址路径给要建立的Script对象.(既可以传递参数也可以是回调Js函数名称[要求服务器端代码开发])

     so.src='http://www.xxx.com/xxx.aspx?xxxx';

     3.动态建立Script对象。(你可以在body和head中创建)

     document.body.appendChild(so);

     OK!

     这是两个关于跨域问题解决方法的精华帖子

     

 


 

转载于:https://www.cnblogs.com/adsiz/archive/2008/10/30/1322923.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值