我最近开始学习 AJAX,并且正在尝试一个非常简单的项目,该项目涉及捕获一些表单数据并将其发送到两个服务器。
第一台服务器是托管网站和服务器端 php 处理的服务器。这很好
第二个服务器是一个 python 基本的 http 服务器,它只处理从 AJAX 发送的 POST 操作请求。此功能有效,但有点奇怪。
让我解释
这是我的 AJAX 代码,它绝对是直截了当的。
function xml_http_post(url, data) {
var req = false;
try {
// Firefox, Opera 8.0+, Safari
req = new XMLHttpRequest();
}
catch (e) {
// Internet Explorer
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
alert("Your browser does not support AJAX!");
return false;
}
}
}
req.onreadystatechange = function() {
if (req.readyState == 4) {
// callback(req);
}
}
req.open("POST", url, true);
req.setRequestHeader("Content-type","text/plain");
req.send(data);
}
由于我不打算发回任何响应,因此我的就绪状态更改回调函数为空。
但是当我执行此代码(由 onclick on a button 触发)时,POST 不起作用,服务器似乎没有收到任何东西。
但最令人惊讶的是,如果我在 req.open() 处保留一个断点,然后手动执行步骤,那么它总是可以工作。这意味着,我想有一些时间问题需要解决。
如果第三个参数“async”设置为false,它可以在没有断点的情况下正常工作,但这无论如何都是不可取的,所以我想让它与async = true一起工作。
任何帮助将不胜感激。
谢谢希亚姆