gpt4 book ai didi

cakephp Controller 的 jquery getJSON() 响应为空,但 200 成功

转载 作者:行者123 更新时间:2023-12-01 05:05:50 25 4
gpt4 key购买 nike

我可以从标准 http://传递错误,但无法在 jquery 调用中获取要呈现(甚至传递)的 $errors 值。有人知道我在这里做错了什么吗?我已经这样做了大约 5 个小时,然后就睡着了。感谢您的指导和批评。

我的 jQuery:

$j("#applicant_age").focusin(function(){
$j(this).css("background-color","#FFFFCC");
});
$j("#applicant_age").focusout(function(){
$j(this).css("background-color","#ffffff");
$j.getJSON('<?php echo $this->Html->url(array('controller'=>'plans', 'action'=>'ajax_search_validate'))?>', function(json){
});
});

Controller 操作:

function ajax_search_validate() {
if ($this->Plan->validates()) {
$this->Plan->set($this->data);
$errors = $this->Plan->invalidFields();
$this->set('errors', $errors);
}
}

查看(发布此内容可能毫无意义,但是嘿……):

<?php
foreach ($errors as $error) :
?>

<p id="errorStyle" style="padding: 10px; background-color: #FF3333; color: #ffffff; margin: 0px 0px 10px 0px; "><?php echo $error; ?></p>

<?php endforeach; ?>

FireBug 响应:

ResponseHeaders
Date Wed, 18 May 2011 09:28:51 GMT
X-Powered-By PHP/5.2.6-1+lenny10
P3P CP="N..."
Connection Keep-Alive
Content-Length 0
Server Apache/2.2.9 .....
Content-Type text/html
Keep-Alive timeout=15, max=100
RequestHeaders
Accept application/json, text/javascript, */*; q=0.01
X-Requested-With XMLHttpRequest

最佳答案

您正在渲染的 View 是 HTML,因此您的 $.getJSON 调用正在获取一堆 HTML,而不是 JSON。如果 JSON 未验证,响应将显示为空,这就是为什么您在 $.getJSON 调用中看不到任何返回的原因(尽管有 200 成功响应)。试试这个:

$j.get('<?php echo $this->Html->url(array('controller'=>'plans', 'action'=>'ajax_search_validate'))?>', function(html){
alert(html);
});

如果您确实希望将 JSON 返回给客户端,则需要修改 Controller 以返回一些 JSON。像这样的东西:

echo json_encode(array('errors', $errors));

您可能必须禁用默认 View 呈现行为(或创建 JSON View )。我对 CakePHP 不熟悉,所以我无法真正详细了解如何实现这一点。

关于cakephp Controller 的 jquery getJSON() 响应为空,但 200 成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6042613/

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