2011-02-03 45 views
0

新的HTML和AJAX编程的所以这里有云:使用AJAX来访问文件相同的服务器

我创建了一个网站,填写表格与从外部txt文件(content.txt)的内容。该文本文件位于Windows 2003 Web服务器上,位于C:\ Inetpub \ wwwroot文件夹中(因此可通过http://servername:port/content.txt访问)。目前AJAX代码,我有我的网站是这样的:

function content(file) 
{ 
    if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
    } 
    else 
    {// code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xmlhttp.onreadystatechange=function() 
    { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 
      populate(); 
     } 
    } 
    var right_now = new Date(); 
    xmlhttp.open("POST",file + "?" + right_now.getTime(),true); 
    xmlhttp.send(); 
} 

然后在HTML的身体我有:

<body id="body" onload="javascript:content('http://servername:port/content.txt')"> 

下面这段代码的作品和网页加载罚款,如果我从一个运行计算机在同一网络上。但是,如果我将它放在服务器上并使其成为“实时”网站(使用IIS),然后尝试从网络上的另一台计算机访问该网站,则IE会将指向xmlhttp的“访问被拒绝”错误记录下来。开放线路。

现在我已经读过,AJAX不能在不同的域中工作,但是在这种情况下肯定它们在同一个域中?或者,也许我对域的想法是完全错误的。希望你们可以帮助新手出局。干杯。

回答

0

它似乎是一个端口问题。看看你遇到的这个[类似]问题。

引用其他交:

对于两个文件被认为具有相同的原点,协议(HTTP/HTTPS),所述结构域和端口(默认80或:xx)在有是有意义的。所以不,你不能在不同的端口使用xhr。

+0

好的,谢谢你。我已经将content.txt放到与网站html文件相同的文件夹中,并且它们现在都在端口82上(端口80正在被别的东西使用)。但是,现在填充函数将不会运行即:xmlhttp.readyState不等于4或xmlhttp.status不等于200 – NavMan 2011-02-03 04:13:15