如何在 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 是可能的!" 是的。1
的 10
是 '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的主要内容,如果未能解决你的问题,请参考以下文章
使用 xampp 时我无法在 chrome 上调用 ajax
如何使用 xampp 和 apache 设置 web 根目录并在 localhost 中隐藏 app.php 和 app_dev.php?