cakephp,jquery,.ajax(),dataType:json
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了cakephp,jquery,.ajax(),dataType:json,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1524字,纯文字阅读大概需要3分钟。
内容图文
![cakephp,jquery,.ajax(),dataType:json](/upload/InfoBanner/zyjiaocheng/670/a06c4d7d251a49e4906277d23f7e34ff.jpg)
有没有可能不查看cakephp控制器功能就可以吗?我试图让我的服务器返回的数据类型不是字符串-而是数组
我的控制器功能:
function test() {
$this->layout = 'plain';
$task['Numbers']['uno'] = 'mooo';
$task['Numbers']['dos'] = 'says the cow';
$result = json_encode($task);
$this->set('result', $result);
}
我的视图文件test.ctp
echo $result;
我的jQuery:
$('#test').live('click', test);
function test() {
var data = $('#form').serialize();
$.ajax({
type: "post",
url: "/controller/test",
data: data,
dataType: 'json',
success: function(response){
alert(response.Numbers.uno);
}
});
}
单击标记为test的html元素不会给我任何东西.但是如果我拿出
dataType: 'json',
并改变
alert(response.Numbers.uno);
至
alert(response);
在我的jquery中-我收到警报:json编码的数据但是作为字符串(
alert(typeof response);
)
有谁知道会发生什么?
解决方法:
首先,要回答您的问题,是的,您可以没有视图(这是一个很好的例子).在您的控制器操作(在这种情况下为测试)中,只需设置$this-> autoRender = false;.这就是我通常要做的,只是在控制器本身中回显编码后的JSON字符串.这样可以减少混乱.
接下来要看的是config.php中的调试设置.如果未设置为0,则很有可能是您的问题.您的echo语句可能正在回显JSON格式的字符串,但会将调试输出附加到该字符串.在该方法中,只需包含Configure :: write(‘debug’,0).这将仅对当前请求禁用调试.我通常通常在我的AppController中执行此操作:
if ( $this->RequestHandler->isAjax() ) {
Configure::write ( 'debug', 0 );
}
我会使用Firebug之类的工具,看看您的Ajax请求正在发生什么.它将监视这些请求,并提供请求和响应标头供您检查.这可能会有所帮助.如果后者是问题所在,那么Firebug会在响应标题中向您显示.
内容总结
以上是互联网集市为您收集整理的cakephp,jquery,.ajax(),dataType:json全部内容,希望文章能够帮你解决cakephp,jquery,.ajax(),dataType:json所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。