由于武林网近日首页突然出现了脚本错误提示,显示没有权限。我经过很漫长的查找,也没有能够找到问题所在。最好在搜索引擎的帮助下,找到了下面这篇文章,终于解决了问题。原来的确是ajax跨域操作问题,我将代码中的红色文字去除后,留下相对路径,发现问题解决。
只是还有一个疑问,Ajax难道只能用相对路径来判断是否同域吗?本来我站就是www.Vevb.com,但是对www.Vevb.com的操作竟然也成了跨域操作,无法理解。
在程序里有
function CheckLogin(){
var taget_obj = document.getElementById('_loginform');
myajax = new DedeAjax(taget_obj,false,false,"","","");
myajax.SendGet2("http://www.Vevb.com/member/loginsta.php");
DedeXHTTP = null;
}
本文出自:http://www.mrxcool.com/articles.asp?id=210,原文如下:
前两天给一客户做网站,由于给客户的空间不支持JMAIL发邮件,所以就想说在自己公司的空间里放程序,在客户那用AJAX程序获取信息。于是马上动工,由于有了前面的经验了,所以这个“简单”的脚本写起来也很顺手很快就完成了,在本机上调试也一切正常。然后就传到网站上去,也没怎么细想就没有在服务器上测试了。
今天收到客户的信息,说那个程序没办法用,出问题了。我马上去看了一下,看到出现了脚本错误的提示,一看,说是没有权限。怎么会没有权限呢?想不通,也不知道。
看来只好百度一下啦,一搜,才知道原来这个是AJAX经典的跨域操作问题,出于安全起见,AJAX从一“出道”就没有办法执行跨域操作。看完之后我那个心凉呀,那该怎么办呢?总不能让程序不能用吧。
继续百度+GG
到最后还是没有搜到很好的解决方法,但有一种方法是比较好的就是通过本域程序来获取远域的内容,再由AJAX来获取本域程序的返回信息。
可能说得太饶舌了,我说明一下吧。就是在当前网站上用服务器动态程序获取远程的内容,其实也是要用了采集常用到的Microsoft.XMLHTTP组件,基本上也是和AJAX同理的,只不过是服务器端的程序支持跨域操作,而客户端的AJAX脚本不支持。
但是如果当前的网站空间不支持此组件那就没办法了。虽然现在绝大部分的空间都是支持的,但也有可能部分不支持呀,更有甚者你用的还是静态的空间,那这个暂时也没有任何办法可以解决。
新闻热点
疑难解答
图片精选