2011-02-03 46 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