【问题标题】:Ajax doesn't load simple fileAjax 不加载简单文件
【发布时间】:2014-09-12 21:06:00
【问题描述】:

我开始学习 AJAX,一开始遇到了我无法解决的问题。我有 2 个文件,main.html 和代码:

<!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 元素中。不幸的是,它不适用于我不知道的原因。

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

【问题讨论】:

  • 你是在本地休息吗? (在大多数浏览器中不起作用)您是否在浏览器控制台中查看过错误? (F12)
  • 嗯,当我查看控制台时“XMLHttpRequest 无法加载文件:****。跨源请求仅支持 HTTP。”

标签: javascript html ajax


【解决方案1】:
xmlhttp.onreadystatechange=function()
 {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
  {
     document.getElementById("target").innerHTML=xmlhttp.responseText;
  }
 }

【讨论】:

    【解决方案2】:
    <div id="test"></div>
    
    $(document).ready(function(){
       $.get('ajax/test.txt', function(data) {
          $('#test').html(data);
        });
    
    })
    

    【讨论】:

    【解决方案3】:
     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 是否完成。否则会同时执行,找不到响应文本。

    【讨论】:

    • 它不起作用,我刚刚发现了我的问题。我试图向我的本地文件发送请求,因为我相信在 AJAX 中这是不可能的,我必须将它发送到服务器。
    • @CSharpBeginner 它也可以在本地工作,但我认为您需要提供完整的路径或文件。它是localhost.... 喜欢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多