2014-09-12 100 views
0

我开始学习AJAX,并在开始时遇到问题,我无法解决。我有2个文件,用main.html中代码:Ajax不加载简单文件

<!DOCTYPE html> 
<html> 
<head> 
    <title>My page</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
</head> 
<body> 
    <button>apple</button> 
    <div id="target"> 
    Press button 
    </div> 

    <script> 
    var buttons = document.getElementsByTagName("button"); 
    for (var i = 0; i < buttons.length; i++) 
    { 
     buttons[i].onclick = handleButtonPress; 
    } 

    function handleButtonPress(e) 
    { 

     var xmlhttp = new XMLHttpRequest(); 

     xmlhttp.open("GET","blabla.txt",false); 
     xmlhttp.send(null); 

     document.getElementById("target").innerHTML=xmlhttp.responseText; 

    } 
</script> 
</body> 
</html> 

和“blabla.txt”内容有:

asdasdsaldkjasdajsdl 

问题是,点击按钮后,应该加载blabla.txt文件的内容进入div元素。不幸的是,它不适用于我不知道的原因。

我认为值得补充的是两个文件都放在同一个文件夹中。

+0

你是否在本地休息? (不适用于大多数浏览器)您是否在浏览器控制台查找错误? (F12) – 2014-09-12 13:01:37

+0

嗯,当我看着控制台“XMLHttpRequest无法加载文件:****。交叉源请求只支持HTTP。” – CSharpBeginner 2014-09-12 13:04:32

回答

0
xmlhttp.onreadystatechange=function() 
{ 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("target").innerHTML=xmlhttp.responseText; 
    } 
} 
0
<div id="test"></div> 

$(document).ready(function(){ 
    $.get('ajax/test.txt', function(data) { 
     $('#test').html(data); 
    }); 

}) 
+0

我有问题,这段代码中使用了什么语言/技术?据我所知javascripts不是以“$”开头 – CSharpBeginner 2014-09-12 13:23:36

+1

@CSharpBeginner - 它是[jQuery](http://jquery.com/)。 – 2014-09-12 13:28:48

+0

如果你只是想没有jQuery的JavaScript,所以看看这可以对你有所帮助http://stackoverflow.com/questions/15989911/get-html-source-code – budamivardi 2014-09-12 13:55:38

0
var xmlhttp = new XMLHttpRequest(); 

xmlhttp.onreadystatechange = function() { 
    var DONE = (xmlhttp.readyState == 4 && xmlhttp.status==200) ; 
    if (DONE){ 
     document.getElementById("target").innerHTML=xmlhttp.responseText; 
    } 
}; 
xmlhttp.open("GET","blabla.txt",false); 
xmlhttp.send(null); 

使用上述代码。你需要添加ajax的状态来检查ajax是否完成。否则它将执行相同的时间并且不会找到响应文本。

+0

它不工作,我只是发现我的问题。我试图发送请求到我的本地文件,因为它不可能在AJAX我相信,我必须将其发送到服务器。 – CSharpBeginner 2014-09-12 13:08:43

+0

@CSharpBeginner它将在本地工作,但我认为你需要给出完整的路径或文件。它是http:// localhost/....就像 – 2014-09-12 13:10:38