【发布时间】:2014-03-26 07:37:42
【问题描述】:
在我的 ajax.php 中有:
if(urlvar(2) == 'uploadphoto'){
do... echo '<img... />';
}
但是这个函数只被一个 jquery 调用,返回一个特定的 div。
但是如果我访问URL:[http://localhost/projectname/ajax/uploadphoto],这个页面返回的函数结果有一些错误(因为参数是由jquery发送的)
如果在没有 jquery 的情况下访问文件,我如何防止返回?
*已解决:
在没有jquery方法无法访问的函数中使用该函数。
function isHttpRequest()
{
if( @$_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
return true; //acessed by jquery
}
exit; // or return false -> from access the file without method
}
【问题讨论】:
-
您无法可靠地检测 AJAX 调用。 HTTP_X 标头通常存在,但 AJAX 请求是类似于 ANY OTHER 的 HTTP 请求。如果有人想在他们的请求中伪造该标头,服务器端代码是不可能检测到的。
-
您还应该考虑返回 404 而不是空响应。