【问题标题】:Ajax isn't showing any resultsAjax 没有显示任何结果
【发布时间】:2014-04-29 20:45:14
【问题描述】:

我一直在从各种在线教程中学习 javascript 中的 Ajax 技术,我最终得到了这段代码

function fun1 () 
{
    var a;
    if (window.XMLHttpRequest) 
        a = new XMLHttpRequest();
    else 
        a = new ActiveXObject("Microsoft.XMLHTTP");

    a.onreadystatechange=function()
    {
        if (a.readyState == 4 && a.status == 200) 
        {
            document.getElementById("myDiv").innerHTML = a.responseText;
        }
    }

    a.open("POST", "java4s.txt", true);
    a.send();
}

HTML:

<div id="myDiv" style="width: 300px; height: 30px;">
    Click on the button below
</div>
<button type="button" onclick="fun1()">
    Change Content
</button>

我已经添加了带有一些文本的“java4s.txt”,但是单击按钮(更改内容)后页面没有任何影响。我找不到脚本有任何问题。如果缓存有问题,请帮助我或别的东西。 ps:我用的是火狐浏览器。

【问题讨论】:

  • 您似乎缺少 onreadystatechange 事件处理程序。
  • @adeneo 是的,我也试过了,什么也没发生,我正在更新我的代码,再看一遍:)
  • @Ajaz 你有没有用 Firefox 或 chrome 中的网站管理员工具检查你的响应,看看数据是否已经返回或者是否返回状态 500???首先检查它可能是返回 200 没有数据
  • 要配合@makemoney2010,请按F12 并检查Chrome 中的Network 标签。
  • 您正在使用 Web 服务器进行测试,例如 wamp 等?

标签: javascript ajax asynchronous


【解决方案1】:

Ajaz,您在其中执行请求并签入网站管理员工具,您应该会看到如下内容:

当点击每个请求时,您应该会看到类似这样的内容

然后单击响应选项卡,您应该会看到按照最终图像返回到响应中的所有数据:

这张图数据的格式是json。

但是你需要注意你返回的数据类型来设置请求的正确mimeType。在json中你需要返回“application/json”在xml case“application/xml”等等。检查它也是。

【讨论】:

    【解决方案2】:

    脚本没有问题。使用 Chrome,打开您的 (F12) 开发人员工具,您应该会在网络选项卡中看到响应或显示的控制台错误,这将解决问题。如果您遇到问题,请提供有关托管 .txt 文件的方式和位置的更多信息。

    您可以在此处查看几乎完全一样的脚本副本:W3Schools Ajax Demo

    【讨论】:

    • 好吧,我在 Firefox 中使用了网络选项卡,没有这样的请求。
    • 您在哪里以及如何托管 java4s.txt 文件?在你的本地主机上?您在控制台中看到任何错误吗?
    • 我整理出来了,谢谢! :D
    • @Ajaz 如果您找到了解决方案,请为您的问题添加答案。
    • 我猜他没有在他的本地主机(或路由到它)中正确托管 .txt 文件。
    【解决方案3】:

    出现此问题是因为未为应用程序启用 CORS。启用 CORS 后就可以了。

    【讨论】:

      猜你喜欢
      • 2015-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-16
      • 1970-01-01
      • 2013-04-21
      • 2012-12-19
      相关资源
      最近更新 更多