2014-09-22 93 views
0

根據w3schools.com XMLHttpRequest對象的開口的方法有三個參數: 1.方法 2. URL 3.一個布爾值,指示該呼叫是否是異步或不xmlhttp.open(「GET」,「ajax_info.txt」,true):我錯過了什麼?

其中一個例子中使用的文本文件的url參數。我複製了代碼,並用自己的文本替換了文本文件,沒有發生任何事情。我錯過了什麼?

這是我複製的代碼:

這不叫XMLLocalFileRequest :)

嘗試使用http://localhost/ajax_info.txt爲URL○:

<!DOCTYPE html> 
<html> 
<head> 
<script> 
function loadXMLDoc(){ 
    var xmlhttp; 
    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){ 
     document.getElementById("myDiv").innerHTML=xmlhttp.responseText; 
    } 
} 
xmlhttp.open("GET","ajax_info.txt",true); 
xmlhttp.send(); 
} 
</script> 
</head> 
<body> 

<div id="myDiv"><h2>Let AJAX change this text</h2></div> 
<button type="button" onclick="loadXMLDoc()">Change Content</button> 

回答

1

XMLHttpRequest是一個HTTP請求..文件名本身不是一個網址。

+0

請原諒我的無知我是一個noob。我使用了:「\ http://localhost/ajax_info.txt」,並沒有發生任何事情。謝謝您的幫助。 – MR1971 2014-09-22 08:59:05

3

你應該把它放在一些服務器裏面試試。因爲我們在這裏使用GET請求,所以它需要服務器。我試圖把它放在內部,爲我工作。

0

我使用xampp作爲我的本地服務器,所以我會嘗試就此解釋。如果您正在使用其他本地服務器,請在google.com上查看該服務器。

將文件放入本地計算機上安裝的xampp(htdocs)文件夾中名爲(jscalls)的文件夾中。然後調用

本地主機/ jscalls/nameOfFile.html

現在,當你點擊按鈕,它會得到指定標識的內容。

0

你把文件ajax_info.txt放在目錄下嗎? 我編輯一個文件爲ajax_info.txt在以下內容的目錄,它完美的作品。

<h1>AJAX</h1> 
<p>AJAX is not a programming language.</p> 
<p>AJAX is a technique for accessing web servers from a web page.</p> 
<p>AJAX stands for Asyncronous JavaScript And XML.</p> 
1

出於安全原因,現代瀏覽器不允許跨域訪問。

這意味着網頁和它嘗試加載的XML文件都必須位於同一臺服務器上。

W3Schools上的例子都打開了位於W3Schools域的XML文件。

如果您想在您自己的網頁上使用上述示例,則您加載的XML文件必須位於您自己的服務器上。