我有一个响应ajax调用的插件但是当我尝试检索查询变量列表时,列表为空。
这是请求:
http://www.xxx.com/wp-admin/admin-ajax.php?minutes=1500&data=1&action=get_cbp_contracts
在我的ajax动作中
class Contracts
{
[...]
/**
* query params
*
* @var array
*/
public static $query_params = array(
'minutes' => 'minutes',
'data' => 'data'
);
function get_contracts(){
foreach (Contracts::$query_params as $name => $api_name)
if ($value = get_query_var($name))
$p = $value;
}
[...]
}
function add_query_vars_filter( $vars ){
foreach (array_keys(Contracts::$query_params) as $name)
$vars[] = $name;
return $vars;
}
add_filter( 'query_vars', 'add_query_vars_filter' );
经过一番调查后,我知道add_query_vars_filter()永远不会被执行。有什么想法吗?
编辑: js代码
jQuery.ajax({
url: '/wp-admin/admin-ajax.php',
type: 'GET',
data: form.serialize().replace(/[^&]+=\.?(?:&|$)/g, ''),
dataType: 'json',
timeout: 10000,
success: function(result) {
[...]
},
error: function(jqXHR, textStatus, errorThrown) {
[...]
}
})
答案 0 :(得分:1)
Arek,我觉得你应该尝试更改数据类型并使用html进行测试。
更改
dataType: 'json',
到
dataType: 'html',