JQuery AJAX вернул слишком много данных, которые я не запрашивал - PullRequest
0 голосов
/ 12 июня 2010

Я использую CakePHP 1.26 и CDN JQuery в этом URL: 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;
                   }
        }  

Как вы видите, функция «В наличии» вернет либо ноль, либо единицу.Но были некоторые избыточные данные, возвращаемые с сервера,то, что я увидел в окне Alert, было примерно таким (а не 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 ]

3 голосов
/ 27 июля 2010

Или в вашем контроллере вы можете установить $this->layout = ''; or $this->layout = 'ajax';, и вы не должны получать никаких других выводов.

1 голос
/ 12 июня 2010

Добавьте RequestHandler к массиву $components вашего контроллера. После этого Cake автоматически использует макет Ajax при запросе Ajax.

0 голосов
/ 12 июля 2011
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();

}
0 голосов
/ 12 июня 2010

CakePHP возвратил страницу с ошибкой, в которой говорится, что вызываемый вами метод не существует ...

Предлагаю попробовать URL без jquery, напишите его в адресной строке и сделайте так, чтобы он работал ...

0 голосов
/ 12 июня 2010

Это говорит вам, что идет не так, верно?

<title>Missing Method in Controller</title>

Так что я думаю, что Site1 или User не существует.

...