使用AJAX访问同一服务器上的文件

时间:2011-02-03 03:24:08

标签: javascript ajax webserver cross-domain

HTML和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不能在不同的域上运行,但在这种情况下它们肯定在同一个域上?或许我对域名的看法是完全错误的。希望你们能帮助新手。欢呼声。

1 个答案:

答案 0 :(得分:0)

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

引用其他帖子:

  

对于两个被认为具有相同来源的文档,协议(http / https),域和端口(默认的80或:xx)必须是同义词。所以不,你不能在另一个端口使用xhr。