为什么这个Ajax Codeigniter调用不起作用?

时间:2013-06-19 16:07:25

标签: ajax codeigniter

我有点困惑为什么这个CI Ajax调用不起作用?如果我将$ SearchTerm设置为字符串,但是它没有收到来自AJAX的“搜索”POST,我会收到回复? Code Igniter中是否有需要更改的设置?谢谢!

jQuery.ajax({
      type: "GET",
      url: 'home/getAjaxData/',
      data: 'search=1',
      dataType: "json",
      success: function(resp) {
         Alert (resp);
      }
  });

 public function getAjaxData() {
    $SearchTerm = $this->input->post('search');
    echo $SearchTerm;       
 }

4 个答案:

答案 0 :(得分:0)

$(function(){
 $.ajax({
          type: "POST",
          url: "<?php echo site_url('home/getAjaxData'); ?>",
          data: {search:'1'},
          dataType: "json",
          success: function(resp) {
             Alert (resp);
          }
      });
 });

答案 1 :(得分:0)

您的代码$ this-&gt; input-&gt; post('search'),我认为它只适用于CodeIgniter中的post。您可以使用jQuery获取文本框的值,例如:

<input type="textbox" name="text" /><br/>
$('input[name="text"]').val();

在你的控制器中,正如@badbetonbreakbutbedbac所说,你可以通过以下方式获得搜索价值:

$search= (int)$_REQUEST['search'];
echo $search;

答案 2 :(得分:0)

如果ajax GET调用适用于CI,但ajax POST不起作用 - 请检查CSRF保护。禁用它进行测试(application / config / config.php):

$config['csrf_protection']  = FALSE;

如果然后ajax POST调用开始工作,您可以再次启用保护并添加ci_csrf_token作为ajax数据的一部分。

答案 3 :(得分:0)

将其更改为POST而不是GET

 jQuery.ajax({
      type: "POST",
      url: 'home/getAjaxData/',
      data: 'search=1',
      dataType: "json",
      success: function(resp) {
         alert(resp);
      }
  });

由于您通过POST发送数据,因此该功能将正常运行

public function getAjaxData() {
    $SearchTerm = $this->input->post('search');
    echo $SearchTerm;       
 }