2014-09-22 89 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文件必须位于您自己的服务器上。