当前位置:编程学习 > JS >>

AJAX跨域访问解决方法

问题描述: ajax在使用的时候,在本地打开,能够正常访问任意存在的网址,我猜我们都是在广域网(貌似不是这个原因) ; 然后我放在IIS下,用局域网IP进行访问,出现权限不足,我非常纳闷,于是我的外网IP进行访问,也是权限不足

寻求方法: 我查了很多资料,可是网上的资料基本上都是采集来采集去,百分90都是转载的。 都只说了是浏览器拒绝JS跨域访问,没有具体的说明原因和解决办法

高分寻求高手讲解并给个实例,不要去随便百度或谷歌搜一下把答案贴上来,那些我基本看过了,如果非要转载的,就要加上详细的注释 ,分数稍后追加

补充:修改IE设置我也想过,我本来想通过代码修改浏览网站的人的浏览器的安全设置,但是这样一来就会被当成恶意网站了,得不偿失吖.; 我还看到一种做法,就是修改DNS,但是也是非常麻烦,要修改用户的DNS;       这两种方法否决了.  智囊们,给点意见

追问:除了修改IE设置外没办法? 没办法绕过吗? 我在网上看到的那篇转载文章大致是讲在 服务端也生成个AJAX来接收,然后再用服务器去访问其他域的网址,后知后觉明白了点原理,但是那文章讲得不明不白的。  不知道有什么好方法可以实现

答案:
这个是IE的安全机制造成的,访问网页的客户端的IE设置需要修改一个地方:Internet选项-->安全-->自定义级别,把“通过域访问数据源”选为[启用]即可,在IE7下还要把访问域名或IP添加进可信任站点列表中。我开发的是B/S管理系统,可以在安装时自动修改客户端的IE设置,但如果是网站,就很难令浏览者去修改这个设置了。

从你的问题描述中,我无法看出你真正的问题是什么,请问:

一、你的IIS配置中是否支持匿名访问?

二、你在ajax交互时url用的是相对路径吗?还是交互的不是自己网站的网址?

关于JS跨域访问,如果非要访问其它网站的资源,解决方法有:

一、通过iframe连接其它网站

二、ajax间接通过后台访问对方网站的资源,如访问对方网站的webservice

上一个:谁给我一个ajax控件
下一个:Ajax和Hibernate是不是不能一起用

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,