Multiple ajax nonce requests

时间:2011-06-12 作者:Bosworth99

我当前的项目中有一个特性,它将允许多个ajax请求-我已经完成了一个nonce请求(通过this tute), 但我有点不确定如何处理多个nonce请求。

功能。php:本地化,创建单个nonce

 wp_localize_script( 
      \'B99-Portfolio\', 
      \'B99ajax\', 
      array( 
           \'ajaxurl\'        => admin_url( \'admin-ajax.php\' ),
           \'requestNonce\'   => wp_create_nonce(\'b99-request-nonce\') 
      )
 );
正在调用js:

$.ajax({
        type    : \'POST\',
        url     : B99ajax.ajaxurl,
        data    : {
            action          : \'b99-ajax-submit\',
            requestNonce    : B99ajax.requestNonce
        },...
接收php

public function b99_ajax_submit() {
        $nonce = $_POST[\'requestNonce\'];
        if ( ! wp_verify_nonce( $nonce, \'b99-request-nonce\' ) )

... sql, response
此时,我可以重复使用这个nonce,但我认为这违背了nonce检查的目的。我的解决方案是在接收php中请求一个新的nonce,assignB99ajax js对象该变量,并将其发送回“下一个”ajax序列的请求页面。

有更好的方法吗?

1 个回复
最合适的回答,由SO网友:Bainternet 整理而成

WordPress基本上就是这样做的,而且几乎是唯一的方法,只需让接收PHP函数创建一个新的nonce add并将其与响应一起发送回来,然后在下一轮之前更新JS上的值即可。

结束

相关推荐

AJAX Contact Form Issue

我为我的侧边栏创建了一个联系人表单,它在Chrome中工作得很好,但在IE或FF中却没有。我已经盯着它看了好几个小时了,没发现我做错了什么。我在任何地方都没有收到任何错误,但当我在FF或IE中提交它时,它会在控制台中记录“nope”,并在#jvmsg中回显一条-1的消息。我的html是:<li id=\"jvcontactwidget-3\" class=\"widget widget_contact\"> <div class=\"title\"><h2>