收藏本站腾讯微博新浪微博

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 网站开通淘帖功能 - 蓝色理想插件 论坛内容导读一页看论坛 - 给官方提建议

论坛活动及任务 地图和邮件任务 请多用悬赏提问 热夏来袭,选一款蓝色理想的个性T恤吧!

手机上论坛,使用APP获得更好体验 急需前端攻城狮,获得内部推荐机会 论坛开通淘帖功能,收藏终于可以分类了!

搜索
查看: 13728|回复: 7

怎样解决js读取xml文件跨域问题?

[复制链接]
发表于 2009-12-7 17:25:16 | 显示全部楼层 |阅读模式
www.tide.aaa.com域名下的问题内容如下:var xmlDoc   =   new   ActiveXObject("Microsoft.XMLDOM");  
xmlDoc.async   =   false;
//这句报拒绝访问  
xmlDoc.load(" http://www.aaa.com/tide/aa.xml");   

我试了在www.aaa.com根目录下放置crossdomain.xml配置文件内容如下:
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*.aaa.com" />
</cross-domain-policy>

但是完全没有效果:希望大家能给个方案解决一下!
发表于 2009-12-7 17:55:55 | 显示全部楼层
crossdomain是flash的安全策略 不是浏览器本身的吧

做个server proxy吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-7 18:16:45 | 显示全部楼层

回复 2# yeeh 的帖子

您说的是在服务器端设置代理

那用什么方式把跨域的请求发送到本地服务器端呢?ajax吗?
回复 支持 反对

使用道具 举报

发表于 2009-12-7 18:28:05 | 显示全部楼层

 提示:您可以先修改部分代码再运行


上面的代码,不要直接点  "运行代码" 来看效果.把它保存在本地,双击打开.或者传自己服务器上,Blueidea上面的运行框不能运行引用外站的js的代码.

xmlToJs.asp文件

 提示:您可以先修改部分代码再运行



js跨域读取xml例子演示

asp文件script引用说明:
可传递参数列表:
参数名              意义
url                     要读取的xml文件的URL地址
var                    ASP输出的js代码的js变量名(默认为xml)
charset              ASP所要读取的XML文件的编码,如果是utf-8,则不需要传递该参数
function            ASP输出的js代码要执行的函数名(该参数优先于var,如果传递该参数,则忽略var参数)
另外需要注意的一点是,传递给asp的function的值,所声明的函数,要放在引用这个asp文件的上面.(具体看例子)

例子:

 提示:您可以先修改部分代码再运行


=========================
asp代码有部分更新

[[i] 本帖最后由 faeng220 于 2009-12-7 19:34 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2009-12-7 18:30:11 | 显示全部楼层
原帖由 [i]chesihui 于 2009-12-7 18:16 发表
您说的是在服务器端设置代理

那用什么方式把跨域的请求发送到本地服务器端呢?ajax吗?

ajax请求本域 服务器端去跨域读取

其实我觉得你还不如jsonp去交互 为什么非要xml呢...
回复 支持 反对

使用道具 举报

发表于 2009-12-7 21:37:30 | 显示全部楼层
原帖由 [i]chesihui 于 2009-12-7 18:16 发表
您说的是在服务器端设置代理

那用什么方式把跨域的请求发送到本地服务器端呢?ajax吗?


ajax直接跨域也是一个无权限
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-7 21:49:31 | 显示全部楼层

回复 5# yeeh 的帖子

明白你的意思了!非常感谢,由于用的phpcms无法改动原有文件。
回复 支持 反对

使用道具 举报

发表于 2009-12-8 13:24:42 | 显示全部楼层
如果使用crossdomain.xml配置文件

必须要使用ajaxcdr.js的获取函数才行
AjaxCrossDomainRequest('http://api.bz/ajaxcdr/echo.php', 'POST', 'cross_domain_demo', 'mycallback()');

而不能用浏览器自带xmlDoc
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|Archiver|手机版|blueidea.com ( 湘ICP备12001430号 )  

GMT+8, 2020-12-6 09:52 , Processed in 0.124687 second(s), 8 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表