gpt4 book ai didi

javascript - 为什么这会返回 0?

转载 作者:搜寻专家 更新时间:2023-10-31 21:56:00 24 4
gpt4 key购买 nike

我正在尝试制作自定义验证码生成器。简而言之,服务器通过 AJAX 返回图像的 URL,并在 session 存储中保持与图像的关联。

PHP:

add_action( 'wp_ajax_set_animal_captcha', 'set_animal_captcha' );
$capdir = get_template_directory_uri() . '/assets/captcha/';
$capmap = array ( 'cat' => $capdir . 'Captcha_Cat.png',
'dog' => $capdir . 'Captcha_Dog.png',
'fish' => $capdir . 'Captcha_Fish.png' );
function set_animal_captcha ( )
{
// returns image url of random animal and stores in session storage
// a reference to that animal
$randAnimal = array_rand($capmap,1);
$_SESSION['randAnimal'] = $randAnimal;
die(json_encode($capmap[$randAnimal]));
}

JS:

function capHandler ( imgid )
{
// imgid: id of the image

this.imgid = imgid;
this.formData = new FormData();
this.formData.append('action', 'set_animal_captcha');
this.set = function ( )
{
$.ajax({
url: ajaxurl,
type: 'POST',
async: false,
success: function ( animalUrl ) { alert(animalUrl); },
error: function ( ) { alert("Error in getting captcha image") },
cache: false,
contentType: false,
processData: false
});
}
}

我的问题是它在提醒

0

我不知道为什么。因为我知道正在调用 success 函数,所以 PHP 一定有问题。

最佳答案

为什么要在 set_animal_captcha() 之外设置 $capmap?如果你真的必须把它放在 set_animal_captcha 之外,那么将 $capmap 设置为你函数中的全局变量。像这样:

function set_animal_captcha ( )
{
global $capmap;
// returns image url of random animal and stores in session storage
// a reference to that animal
$randAnimal = array_rand($capmap,1);
$_SESSION['randAnimal'] = $randAnimal;
die(json_encode($capmap[$randAnimal]));
}

关于javascript - 为什么这会返回 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33698110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com