2012-11-05 65 views
2

我想發送一個使用ajax jquery函數的發佈請求,並將一些數據異步返回到一個窗口。這是迄今爲止我所擁有的。它似乎沒有工作。ajax不工作在codeigniter

視圖

$.ajax({ 
      url: '/dashboard/presskits/media/get_video_link/', 
      type: 'POST', 
      dataType: 'json', 
      data: { encoded_link : encoded_link }, 
      cache: false, 
      success: function(output_string){ 
      // $('#edit_video_info').append(output_string); 
      alert(output_string.url_data); 
      } // End of success function of ajax form 
      }); // End of ajax call 
}); 

控制器:

public function get_video_link() 
{ 
    $temp_url = $this->input->post('encoded_link'); 
    $output_string = json_encode(array('url_data' => $temp_url)); 
      return $output_string; 
    } 
+0

您正在使用json,因此您需要返回字符串echo json_encode($ output_string)的json編碼; –

回答

1

打印或回聲不會返回JSON,你應該包括成功了。

print json_encode(array('Status' =>'Success', 'url_data' => $temp_url)); 
0

只需更改與echoprint你的回報。

0

首先,您是否啓用了網址助手?我不認爲你的網址字段是正確的。配置內啓用您的網址助手和回聲,像這樣

url: "<?php echo base_url(); ?>dashboard/presskits/media/get_video_link/" 

自己的基本網址另外,我建議你使用Chrome或Firefox開發者工具檢查您請求的HTTP響應頭。在Chrome上,只需點擊右鍵 - >網絡,然後觸發您的ajax請求。

其次,你應該在你的控制器中迴應響應,而不是返回它。在低級別,當一個函數返回一個值時,它將該值存儲在寄存器(內存)中,並且它都發生在堆棧中。換句話說,這不是一個I/O操作。 Echo將直接向瀏覽器輸出json文本(這正是ajax調用的期望)。