首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML成功消息显示了一个很大的jQuery文件

问HTML成功消息显示了一个很大的jQuery文件
EN

Stack Overflow用户
提问于 2009-06-10 10:04:33
回答 4查看 1.4K关注 0票数 1

我在使用cakePHP和MySQL开发的应用程序中使用jQuery。

在此jQuery代码中

代码语言:javascript
复制
$.ajax({
    type: "POST",
    url: "./updateField",
    data: "name="+fieldname,
    success: function(msg){
                 alert( "Data Saved: " + msg);
             }//success
});//ajax

数据库操作运行正常,但如果我使用alert语句,它会显示一个很大的HTML文件...不知道为什么它会来。

EN

回答 4

Stack Overflow用户

发布于 2009-06-10 10:10:41

它显示一个HTML,因为这是您从服务器获得的内容。我认为这是因为AJAX调用实际上并没有阻止呈现页面,而是返回XML或Json结构。我不知道您在CakePHP中有什么选项来返回XML或Json,而不是呈现页面,但问题的根源肯定是在服务器端,而不是客户端。

票数 4
EN

Stack Overflow用户

发布于 2009-06-10 10:48:23

我相信在默认情况下,Cake不会通过主布局运行Ajax请求,所以大多数html不应该在那里。如果没有,你可以通过专门调用控制器的render方法并将布局设置为'ajax‘来强制使用哪种布局。参考:http://book.cakephp.org/view/57/Controller-Methods#render-428

我在启用debug时也遇到了问题,因为所有SQL语句都被记录到AJAX请求底部的一个HTML表中,并且当数据类型预期为AJAX时,会导致一些严重的解析问题。这可能是一个技巧,但我做了以下操作来绕过它。

在beforeFilter()的主AppController中,我添加了以下内容(确保所有其他控制器的beforeFilter方法都调用父方法):

代码语言:javascript
复制
if ($this->RequestHandler->isAjax()) {
      $db =& ConnectionManager::getDataSource('default');
      $db->fullDebug = false;
} 

在cake/libs/model/datasources/dbo_soure.php中,在我的版本中大约2074行,我更改了

代码语言:javascript
复制
if (Configure::read() > 1) { 
  $this->showLog(); 
} 

至

代码语言:javascript
复制
if (Configure::read() > 1  && $this->fullDebug) { 
  $this->showLog(); 
} 
票数 2
EN

Stack Overflow用户

发布于 2009-06-10 10:11:23

因为这是来自帖子的回复...

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/974686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档