私は安全であり、したがってノンスを使用する必要があるが、動作させることができないアプリがあります。 私はいくつかのオプションを試しましたが、検証が機能しないので、何かが見当たりません。wp-rest apiアプリケーションでワードプレスノンスを使用していない
私のjsのコードは次のとおりです。
ナンスは、次のコードをページに追加されfunction placeNew(next){
_nonce = $('input#_nonce').val();
request = $.ajax({
type: 'POST',
url: url_path + '/foo/v1/newbee',
data: {bid : next , _nonce : _nonce},
security: '<?php echo wp_create_nonce("a"); ?>',
dataType: 'json'
});
request.done(function (response, textStatus, jqXHR){
str = JSON.stringify(response);
if(response["error"]){
alert(response["message"]);
}
:PHPの中で、以下の機能断片を取得し、nonceを比較するために使用される
$nonce = wp_create_nonce('a');
echo "<input type='hidden' id='_nonce' value=" . $nonce ."/>";
:
function ace($request) {
global $wpdb;
$timestamp = time();
$nonce = (string) $request['_nonce'];
$verify = check_ajax_referer('a', $nonce, false);
if (! $verify){
$errMsg = $nonce . '-'. $verify .' not validated ';
return (object) array(error => true, message => $errMsg);
}
私は常に「検証されていません」というメッセージを受け取ります。 $ nonceは値を持ちますが、$ verifyは決して値を取得しません。 docsによると