为什么Nunce可以在Firefox上运行,但在Chrome上不能运行?

时间:2020-02-18 作者:AlanP

我在本地化脚本文件时创建了nonce:

wp_localize_script(\'cad-search\', \'cad_ajax\', 
    array( \'ajaxurl\' => admin_url( \'admin-ajax.php\' ),
         \'nonce\'=> wp_create_nonce(\'cad_nonce\'))
); 

wp_enqueue_script(\'cad-search\');
但是,在通过AJAX调用的函数中计算nonce时,值不同:

if ( !wp_verify_nonce( $_POST[\'nonce\'], \'cad_nonce\')) {
    exit(\'Missing nonce! Please refresh the page.\');
} 
这段代码可以在Firefox中使用,但不能在Chrome中使用。

1 个回复
SO网友:AlanP

关闭缓存插件,在本例中为快速缓存,并添加“define(\'WP\\u cache\',false);”至wp配置。php文件似乎已经解决了这个问题。

相关推荐

How to verify nonces in bulk?

嘿,我对WP相对来说是新手,我正在尝试处理nonce,因为它们是一种很好的安全检查。我很难在中验证noncesave_post 然而上的检查失败$_POST 检查。当var\\u转储$\\u POST变量时,我可以看到我的nonce和POST字段名,但我无法批量验证它们。当我删除验证时,一切正常。link to gist这是我的保存功能:function mdw_save($post_id) { $metas = array( \'s_1_title\',&