Javascript:使用 XMLHttpRequest 获取少量数据,这些数据由网络服务器上的特定 php 例程回显给它。与回调函数异步。或同步,没有任何可能性。
如果 php 文件不存在或无法访问,则会出现问题。responseText 属性不是返回错误标志,而是返回服务器 404 错误页面的 HTML 内容。
404 页面内容因服务器而异,因此几乎不可能通过任何字符串测试来捕获这种情况。有什么方法可以标记发生错误并返回 null 的事实吗?
// envvars is set previously
AjaxRequest.open('post','handler.php?nocache='+nocache,true);
AjaxRequest.setRequestHeader("User-Agent",'Firefox');
AjaxRequest.onreadystatechange = aCallback;
AjaxRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
AjaxRequest.setRequestHeader("Content-length", envvars.length);
AjaxRequest.setRequestHeader("Connection", "close");
AjaxRequest.send(envvars);
}
function aCallback() {
if(AjaxRequest.readyState == 4){
var response = AjaxRequest.responseText;
if(response == 0){
// It is useless to test for failure here because a complete 404 page is returned,
// instead of a null or -1 response.
document.ajax.response.value="Fail";
} else {
document.ajax.response.value=response;
}
}
}
// handler.php:
if ($_POST["request"]=="countbananas"):
echo "bananas=43" ;
endif;
ps 我知道会提到 jQuery,但我宁愿避免这条路线。