CakePHP:无法使用AJAX获取返回的数据
我想使用AJAX请求从控制器类中获取单个变量的值。但它仍然无法获取返回的变量。以下是我使用的代码:CakePHP:无法使用AJAX获取返回的数据,cakephp,jquery,Cakephp,Jquery,我想使用AJAX请求从控制器类中获取单个变量的值。但它仍然无法获取返回的变量。以下是我使用的代码: $(document).ready(function(){ $("#mybutton").click(function(){ var userdata = {username : $("#UserUsername").val()}; $.ajax({
$(document).ready(function(){
$("#mybutton").click(function(){
var userdata = {username : $("#UserUsername").val()};
$.ajax({
type:'POST',
url: 'http://localhost/mycakephp/tests/',
data: userdata,
success: function(data){
alert(data.str);
}
});
});
});
控制器类:
<?php
class TestsController extends AppController {
public $name = 'Tests';
function index(){
$this->autoRender=false;
$str = "valid";
return $str;
}
}
?>
我想获取“$str”变量,但为什么alert()结果仍然是“未定义的”,这应该是“有效的”?这是因为AJAX请求不是这样工作的。它们无法捕获任何PHP返回值,因为它既不是服务器端请求,也不是PHP。它所能做的就是捕获它得到的实际HTTP响应,类似于HTML或JSON。您只需在函数中回显结果,它就可以:
function index(){
$this->autoRender = false;
$str = "valid";
echo $str; // echo rather than return here
}
这样,
$str
就可以在AJAX请求的数据
休息(所以不是数据.str
)中设置。您需要更新jquery,在函数名后添加索引
$(document).ready(function(){
$("#mybutton").click(function(){
var userdata = {username : $("#UserUsername").val()};
$.ajax({
type:'POST',
url: 'http://localhost/mycakephp/tests/index',
data: userdata,
success: function(data){
alert(data.str);
}
});
});
});