如何在 Web 模拟 XAMPP 中使用 AJAX

Posted

技术标签:

【中文标题】如何在 Web 模拟 XAMPP 中使用 AJAX【英文标题】:How do I use AJAX within a web simulation, XAMPP 【发布时间】:2019-07-27 01:32:27 【问题描述】:

我对 Ajax 完全陌生,但想学习如何使用它。我已阅读 Mozilla 提供的“入门”部分,我正在关注该部分,但它无法在 onreadystatechange 上打开函数。

这是我的代码

<!DOCTYPE html>
<html>
    <head></head>
    <body>
        <form action=""> 
            Other info: <textarea cols=50 rows=10 
                                  onblur = "processText(this.value)"
                                  id='info1'></textarea>"
        </form>

        <script>
            function processText(str) 
                var xhttp;
                xhttp = new XMLHttpRequest();
                alert('After new XMLHttpRequest');
                alert('ready state 1' + xhttp.readyState);
                xhttp.onreadystatechange = function () 
                    alert('onready statechange function entered');
                ;

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

我已将其减少到最低限度以显示问题。当我运行它时,我在框中输入一些文本,然后将光标移到外面,“onblur”。这会正确调用函数“processText(str)”并显示警报“After new XMLHttpRequest”。下一个警报显示 ReadyState = 10(我认为只有 0 到 4 是可能的!)。未显示警报“已输入状态更改功能”。

我在 *** 上看到了信息 How to make AJAX work on local server using XAMPP or node.js

它提到可能需要设置端口。我正在使用端口 1337,所以我通过 'localhost:1337' 获取 XAMPP 页面。但是,如果这是问题所在,我找不到如何设置端口。

这是我的配置: XAMPP 版本 3.2.2 网豆8.1 Internet Explorer 11

【问题讨论】:

"我认为只有 0 到 4 是可能的!" 是的。 110'ready state 1' 字符串的一部分。 您没有使用xhttp.send()发送 Ajax 调用。你只是在创建对象,什么都不做 非常感谢你们俩。 【参考方案1】:

Ajax 请求需要 open 和 send 方法。将这些行添加到您的示例中,您实际上执行了 ajax 请求。

function processText(str) 
  var xhttp = new XMLHttpRequest();
  alert('After new XMLHttpRequest');
  alert('ready state 1' + xhttp.readyState);
  xhttp.open('get', 'http://your.url/path:port'); // <- new
  // -> https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/open
  xhttp.onreadystatechange = function () 
    alert('onready statechange function entered');
  ;
  xhttp.open(null); // <- new
  // -> https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/send

【讨论】:

非常感谢你们俩。当我将就绪状态解释为 10 时,我很愚蠢,感谢您发现这一点。罗宾 - 你的回答指出了我的无知。我的原始脚本中确实有一个 xhttp.open('GET', ...) 调用,但我认为错误发生在此之前,所以我在发送之前将其缩减。我最初使用的网址只有文件名,没有“localhost:1337”。现在我的就绪状态为 1,所以我正在取得进展,并且确信我可以从这里开始工作。非常感谢您的帮助。

以上是关于如何在 Web 模拟 XAMPP 中使用 AJAX的主要内容,如果未能解决你的问题,请参考以下文章

ajax模拟获取json

如何将我的Android模拟器连接到我的本地Web服务器

使用 xampp 时我无法在 chrome 上调用 ajax

如何在 xampp 中运行两个本地 Web 开发项目

我无法使用 XAMPP 发送 ajax 请求

如何使用 xampp 和 apache 设置 web 根目录并在 localhost 中隐藏 app.php 和 app_dev.php?