首页 > 开发 > AJAX > 正文

脚本错误提示,没有权限

2024-09-01 08:30:38
字体:
来源:转载
供稿:网友

由于武林网近日首页突然出现了脚本错误提示,显示没有权限。我经过很漫长的查找,也没有能够找到问题所在。最好在搜索引擎的帮助下,找到了下面这篇文章,终于解决了问题。原来的确是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脚本不支持。

但是如果当前的网站空间不支持此组件那就没办法了。虽然现在绝大部分的空间都是支持的,但也有可能部分不支持呀,更有甚者你用的还是静态的空间,那这个暂时也没有任何办法可以解决。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表