为什么返回0
Why is this returning 0?
我正在尝试制作一个自定义的captcha生成器。简而言之,服务器通过AJAX返回图像的URL,并在会话存储中保持与图像的关联。
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]));
}
请将以下内容放入返回某个值的语句中:
die();
相关文章:
- 为什么要返回'这'在导致循环的JavaScript原型中
- 解析-为什么user.getSessionToken()返回未定义的结果
- 为什么JavaScript可以'找不到给定的InnerHTML并返回Cannot set property
- 为什么会返回触发器('点击')
- 为什么可以't我在谷歌浏览器中返回cookie
- 为什么当我在数组上测试regex时,它会返回false
- 为什么innerHTML返回“未定义”
- 为什么typeof的数组的数组的未定义值返回为“0”;未定义的“;我的条件不认为是真的
- 为什么我的get-requesttoserver.js返回离子云9上的实际文件
- sqlite查询返回错误-can'我不知道为什么
- 为什么返回'原因'来自被拒绝的jQueryAJAX调用theable
- 为什么这个array.filter总是不返回任何内容
- 为什么我的函数没有返回准确的计数
- 为什么document.getElementsByClassName(“className”)返回对象
- 为什么Math.pow(1,无穷大)返回NaN
- 为什么会赢't接收返回值
- 为什么不是't我的javascript向Project Euler返回正确答案's排名第一
- 为什么Angularjs服务返回的是字符数组而不是对象数组
- 为什么我的on change事件在ie9上返回空
- 函数 parseInt (1/10000000) 返回 1.为什么