我最近开始学习AJAX,并且正在尝试一个非常简单的项目,它涉及捕获一些表单数据并将其发送到两个服务器。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触发),POST不起作用,服务器似乎没有收到任何东西。
但最令人惊讶的是,如果我在req.open()中保留一个断点,然后执行手动步骤执行,那么它总是有效。这意味着,我想有一些时间问题需要解决。
如果第三个参数“async”设置为false,但它无论如何都是不合需要的,所以我想使它与async = true一起工作,它工作正常,没有断点。
任何帮助将不胜感激。
感谢 希亚姆
您确定自己没有违反Cross Domain政策吗? – Jay