JQuery AJAX返回了太多我没有请求过的数据

时间:2010-06-12 15:01:49

标签: cakephp cakephp-1.2

我在此网址中使用CakePHP 1.26和CDN JQuery: http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js

在HTML网页中,我有以下几行代码:

 $.ajax({
      type: "POST",
      url: "http://mywebsite.com/controllers/avail/"+curl,   
      success: function(data) {         
      alert(data);}

});

在PHP页面中,我得到了另外几行代码:

 function avail($uname){  
              $result1=$this->Site1->User->findByusername($uname);  
               if($result1){
                return 1;
                            }
               else{
                 return 0;
                   }
        }  

如您所见,Avail函数将返回0或1。 但是从服务器返回了一些冗余数据,
我在警告框中看到的是这样的事情(而不是0或1):

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">    
    <html xmlns="http://www.w3.org/1999/xhtml">    
    <head>    
    <title>my site</title>    
    <meta http-equiv="content-type" content="text/html; charset=utf-8">  
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>       
    <style type="text/css">    
    /* CSS Document */   
    /*PAGE LAYOUT*/
 0


不,导致问题的不是缺少的控制器。

5 个答案:

答案 0 :(得分:3)

或者在你的控制器中你可以设置$this->layout = ''; or $this->layout = 'ajax';,你不应该得到任何其他输出。

答案 1 :(得分:1)

RequestHandler添加到控制器的$components数组中。有了这个,当有Ajax请求时,Cake会自动使用Ajax布局。

答案 2 :(得分:0)

它告诉你出了什么问题吧?

<title>Missing Method in Controller</title>

所以我的猜测是Site1User不存在。

答案 3 :(得分:0)

CakePHP返回一个错误页面,说明你正在调用的方法不存在......

我建议在没有jquery的情况下尝试使用URL,将其写入地址栏并使其正常工作......

答案 4 :(得分:0)

ajaxFunction(){

$this->layout = 'ajax';
        Configure::write('debug', 0);
        if (!$this->RequestHandler->isAjax()) {
            $this->cakeError('error', array(
                array(
                    'code' => '404',
                    'name' => __('Page Not Found', true),
                    'message' => 'The Request URL does not exist on this server',
                    'title' => __('404', true),
                    'base' => $this->base,
                    'url' => $this->here
                )
            ));
            exit();
        }
            $response=array();

//在此数组中获取数据

    $response['result'] = Configure::read('Ajax.success');
    $this->set('response',$response);
    $this->renderXhrView();

}