我可以对同一页面上的多个请求使用相同的随机数吗?

时间:2011-12-27 作者:Alex

还是这打破了我不太理解的暂时性的目的

例如,在页面加载时运行的两个ajax请求上,或者在单击某个对象时:

 $.ajax({
   type: \'post\',
   url: \'admin-ajax.php\',
   data: { action: \'foo\',
           _ajax_nonce: \'<?php echo $nonce; ?>\' }
 });

 $.ajax({
   type: \'post\',
   url: \'admin-ajax.php\',
   data: { action: \'foo2\',
           _ajax_nonce: \'<?php echo $nonce; ?>\' }
 });

2 个回复
最合适的回答,由SO网友:Naoise Golden 整理而成

这个WordPress nonce creation function 只能在init 挂钩:

使用init或任何后续操作调用此函数。在操作之外调用它可能会导致麻烦。看见#14024 有关详细信息。

init 钩子“在WordPress完成加载后但在发送任何标题之前运行”,在每个整页请求(不是ajax请求)上创建nonce。因此,从技术上讲,您可以在多个请求上使用相同的nonce,但是you should make them unique on each request, 正如其他答案所指出的那样。

要进一步了解nonce是什么:

Nonces are sent on each Ajax request as a security token, 以确保该请求是用户有意提出的。

SO网友:Rarst

是的,nonce非常令人困惑。:)

虽然nonce的概念意味着它只能使用一次,但WordPress并不强制执行这一点,从技术上讲,您可以多次使用nonce。

然而,由于nonce用于验证意图(就像您真的打算执行特定操作一样),不同的操作应该生成和检查不同的nonce。

结束

相关推荐

AJAX search posts and pages

我正在尝试制作一个插件,在这里我需要创建一个AJAX搜索。Im使用中描述的方法http://www.garyc40.com/2010/03/5-tips-for-using-ajax-in-wordpress/ 执行ajax调用。到目前为止一切都很好。问题是不确定如何在我的ajax函数中检索搜索结果。第一次尝试使用WP\\U查询,如下所示:$query= new WP_Query( array( \'post_type\'=> \'any\',\'post_status\' => \'publ