是否有可能强制PHP只响应ajax请求?通过设置标题等,我们有这样的代码:
if (str.length == 0) {
document.getElementById("txtHint").innerHTML = "";
return;
} else {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
}
};
xmlhttp.open("GET", "gethint.php?q=" + str, true);
xmlhttp.send();
}
Run Code Online (Sandbox Code Playgroud)
我们想要发一个ajax请求.现在,当我们在浏览器中键入"SITENAME.COM/gethint.php?q="时,它会显示一些内容.如何防止此事件?谢谢.
您无法保证某人无法在非Ajax调用上访问此项,但以下内容可帮助防止非Ajax请求:
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH'])
&& strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
// more code here
}
Run Code Online (Sandbox Code Playgroud)
HTTP标头相当容易设置,因此不能保护它...只允许普通用户直接点击页面.
| 归档时间: |
|
| 查看次数: |
259 次 |
| 最近记录: |