Rac*_*ura 41 php ajax wordpress
无论如何检测当前服务器操作当前是否是WordPress中的AJAX请求?
例如:
is_ajax()
Run Code Online (Sandbox Code Playgroud)
web*_*are 83
如果您按照codex中的建议使用AJAX ,那么您可以测试DOING_AJAX
常量:
if (defined('DOING_AJAX') && DOING_AJAX) { /* it's an Ajax call */ }
Run Code Online (Sandbox Code Playgroud)
小智 28
WordPress 4.7引入了一种检查AJAX请求的简单方法,所以我想我会添加这个旧问题.
wp_doing_ajax()
Run Code Online (Sandbox Code Playgroud)
来自开发人员参考:
描述:确定当前请求是否是WordPress Ajax请求.
返回:(bool)如果是WordPress Ajax请求,则返回true,否则返回false.
它本质上是DOING_AJAX的包装器.
Spe*_*rin 15
要查看当前请求是否是从js库(如jQuery)发送的AJAX请求,您可以尝试这样的事情:
if( ! empty( $_SERVER[ 'HTTP_X_REQUESTED_WITH' ] ) &&
strtolower( $_SERVER[ 'HTTP_X_REQUESTED_WITH' ]) == 'xmlhttprequest' ) {
//This is an ajax request.
}
Run Code Online (Sandbox Code Playgroud)
我不确定WordPress是否具有此功能,但可以通过自己创建一个简单的功能来完成.
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
// Is AJAX request
return true;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
我知道这是一个老线程,但接受的答案存在问题,
如果请求是admin-ajax.php文件,则检查定义的DOING_AJAX常量将始终为true.(https://core.trac.wordpress.org/browser/tags/4.4.2/src/wp-admin/admin-ajax.php#L16)
有时admin-ajax.php挂钩不用于AJAX请求,只是一个简单的端点(例如Paypal IPN).
正确的方式是伊恩和斯宾塞提到的.
if( ! empty( $_SERVER[ 'HTTP_X_REQUESTED_WITH' ] ) &&
strtolower( $_SERVER[ 'HTTP_X_REQUESTED_WITH' ]) == 'xmlhttprequest' ) {
//This is an ajax request.
}
Run Code Online (Sandbox Code Playgroud)
(会评论......但没有代表)
归档时间: |
|
查看次数: |
25293 次 |
最近记录: |