问题描述
我的 wordpress API 有问题,用于验证的随机数总是返回 false。我尝试注销和注销,API 在身份验证关闭的情况下工作正常。我将包括下面的代码。
add_action('rest_api_init','api_init');
add_action('admin_enqueue_scripts','enqueue_script');
function api_init() {
register_rest_route("route/v1/","/directory/(?P<req>\d+)",array(
"methods" => ["GET","POST"],"callback" => "api_delegate","permission_callback" => current_user_can("relevant_cap")
));
}
function enqueue_script() {
wp_enqueue_script( 'script_name','/path/to/ajax/script.js',['jquery'],'1.0.4',false);
wp_localize_script('script_name','ajax_var',array(
"url" => esc_url_raw("https://relevant_url.com/"),"nonce" => wp_create_nonce('wp_rest')
));
}
对于客户端 Javascript
$(".api").on('click',order66());
function order66() {
$.ajax({
type: 'GET',url: '/wp-json/relevant/v1/',contentType: "application/json",data: {
"_wpnonce": ajax_var.nonce
},error: function (jqXhr,textStatus,errorMessage) {
console.log(errorMessage);
},// contentType: 'application/json',}).done(function (response) {
console.log(response);
});
}
我也尝试使用“X-WP-Nonce”标头,但没有给出任何不同的结果。任何帮助或指示将不胜感激!
解决方法
解决了,我需要用匿名函数包装“权限回调”,之后它就像一个魅力!