2013-01-03 48 views
2

我需要快速幫助。請幫我弄清楚這個問題。codeigniter ajax螢火蟲顯示200但不顯示結果

我有一個客戶端項目,這是在codeigniter框架。 我的客戶需要在他們的網站上自動完成。我儘量讓它工作。一切都很好我按照教程編寫了MVC。 但我的腳本不返回任何

我的自動完成

<link rel="stylesheet" href="<?php echo $this->config->item('view_path');?>autocomplete/ui.theme.css" type="text/ css" media="all" /> 
    <script src="<?php echo $this->config->item('view_path');?>autocomplete/1.4.3.jquery.min.js" type="text/javascript"></script> 
    <script src="<?php echo $this->config->item('view_path');?>autocomplete/1.8.6.jquery-ui.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
    $(this).ready(function() { 
     $("#postcode").autocomplete({ 
      minLength: 1, 
      source: 
      function(req, add){ 
       $.ajax({ 
        url: "<?php echo base_url(); ?>home/lookup", 
        dataType: 'json', 
        type: 'POST', 
        data: req, 
        success:  
        function(data){ 
         if(data.response =="true"){ 
          add(data.message); 
         } 
        }, 
       }); 
      }, 
     select: 
      function(event, ui) { 
       $("#result").append(
        "<li>"+ ui.item.value + "</li>" 
       );     
      },  
     }); 
    }); 
    </script> 

我的自動完成控制器

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Autocomplete extends CI_Controller { 

function index() 
{ 
    $this->load->view('autocomplete'); 
} 

function lookup(){ 
    // process posted form data (the requested items like province) 
    $keyword = $this->input->post('term'); 
    $data['response'] = 'false'; //Set default response 
    $query = $this->MAutocomplete->lookup($keyword); //Search DB 
    if(! empty($query)) 
    { 
     $data['response'] = 'true'; //Set response 
     $data['message'] = array(); //Create array 
     foreach($query as $row) 
     { 
      $data['message'][] = array( 
            'id'=>$row->PC_POST_CODE, 
            'value' => $row->PC_TOWN.' '.$row->PC_POST_CODE, 
            '' 
           ); //Add a row to array 
     } 
    } 
    if('IS_AJAX') 
    { 
     echo json_encode($data); //echo json string if ajax request 

    } 
    else 
    { 
     $this->load->view('autocomplete/index',$data); //Load html view of search results 
    } 
} 

}

/*結束文件autocomplete.php的/ /圖位置:./application/controllers/autocomplete.php */

和Model在示例中也相同。

當我看到火蟲的控制檯中,我看到這個消息,但沒有結果。

http://yaashinii.com/maxsurge/tyrechangr/index.php/home/lookup 200 OK 3.28s 

您可以訪問的網站鏈接。

http://yaashinii.com/maxsurge/tyrechangr/ 

我也檢查,當我只使用一個simpe ajax調用,那麼結果也一樣。甚至當我改變控制器的方法,只顯示結果讓說我改變

function lookup(){ 
    echo 'waheed'; exit; 
    } 

即使這樣,同樣的結果

http://yaashinii.com/maxsurge/tyrechangr/index.php/home/lookup 200 OK 3.28s 

請幫我來說這是一個新的問題,我沒有」不明白爲什麼它會發生。

+0

您可以在開始區域檢查自動完成功能。 –

+0

你在JSON之前有''waheed''輸出,導致語法錯誤。 – Musa

+0

感謝@Musa的快速回復。但如果我已經waheed它應該顯示在控制檯螢火蟲waheed字符串,你可以看到在控制檯螢火蟲鏈接轉紅狀態200好,但響應是沒有什麼。 –

回答

1

我得到了解決方案。

我正在訪問這個地址http://www.yaashinii.com/maxsurge/tyrechangr/但我已經在codeigniter的配置文件中定義了基地址爲http://yaashinii.com/maxsurge/tyrechangr/index.php/因此它變成了一個跨域。而且ajax不允許跨域訪問。你可以看到我正在訪問www和基地址,沒有www

相關問題