当我在没有SSL的站点上编写ajax函数时,请检查\\u ajax\\u referer是否按预期工作。但它失败了,在https站点上出现了403禁止的错误。我试了很多次,但我不知道为什么它不起作用。
我错过了什么?有什么想法吗?
表单(小部件类):
public function widget( $args, $instance ){
$action = \'?action=registration\';
$unique_string = "Unique string";
$nonce = wp_create_nonce($unique_string);
wp_localize_script(\'registration_script\', \'registration_ajax_object\',
array(
\'ajaxurl\' => admin_url(\'admin-ajax.php\') . $action,
\'nonce\' => $nonce
)
);
?>
...form...
<?php
}
主插件文件:
function ajax_registration(){
check_ajax_referer(\'Unique string\', \'nonce\');
...
}
add_action(\'wp_ajax_registration\', \'ajax_registration\');
add_action(\'wp_ajax_nopriv_registration\', \'ajax_registration\');
JS文件:
let ajaxurl = registration_ajax_object.ajaxurl;
let nonce = registration_ajax_object.nonce;
$.ajax({
type: \'post\',
url: ajaxurl,
data: {
\'nonce\': nonce,
...
}, ...
});