这应该有效(在 jQuery 中):
$.post('check.php',{'c_user':c_user})
$.done(function(data) {
if(data == '0'){
window.location.href = "example.php";
}
});
一般格式是
$.post('URL_SENDING_TO',function (data returned from request) {
dosomething();
});
如果要发送数据,可以使用.done
,如下所示:
$.post('URL_SENDING_TO',{'datatosend':'value1','datatosend2':'value2'})
.done(function (data returned from request) {
dosomething();
});
当然,如果你想在没有 jQuery 的情况下这样做,这应该可以工作(参考http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp和http://www.w3schools.com/ajax/tryit.asp?文件名=tryajax_database):
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
if (xmlhttp.responseText == '0') {
window.location.href = "example.php";
}
}
}
var time_five_sec = setInterval(
function () {
xmlhttp.open("POST", "check.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("c_user=" + c_user);
}, 5000);
如果您想将最后一个函数更改为 setTimeout(如 Jasper 推荐的那样),您可以编写:
function timed_ajax_request() {
setTimeout(function () { ajaxrequest() }, 5000);
}
function ajaxrequest() {
xmlhttp.open("POST", "check.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("c_user=" + c_user);
timed_ajax_request();
}
timed_ajax_request();
这将在一个循环中发送它,它timed_ajax_request
首先调用函数,然后当发送 ajax 请求时,它timed_ajax_request
再次调用,因为它是 a Timeout
,它会在调用请求之前等待 5000 毫秒(或 5 秒)。
如果您想使用GET
而不是POST,
更改行:
xmlhttp.open("POST", "check.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("c_user=" + c_user);
至:
xmlhttp.open("GET", "check.php?c_user=" + c_user, true);
xmlhttp.send("c_user=" + c_user);
这应该是一样的。这同样适用于 jQuery,将其更改为:
$.post('check.php',{'c_user':c_user})
$.done(function(data) {
if(data == '0'){
window.location.href = "example.php";
}
});
至:
$.get('check.php',{'c_user':c_user})
$.done(function(data) {
if(data == '0'){
window.location.href = "example.php";
}
});
因此,总而言之,要完全按照您在问题中想要做的事情,包括 Jasper 的建议,您可以这样写:
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
if (xmlhttp.responseText == '0') {
window.location.href = "example.php";
}
}
}
function timed_ajax_request() {
setTimeout(function () { ajaxrequest() }, 5000);
}
function ajaxrequest() {
xmlhttp.open("GET", "check.php?cu=" + c_user, true);
xmlhttp.send();
timed_ajax_request();
}
timed_ajax_request();