Jquery'错误请求'在url中传递数组时出错

时间:2014-08-26 06:52:54

标签: jquery ajax json codeigniter

我的数组中包含10条以上的记录,我想把它传递给控制器​​,但是会弹出错误请求。

以下是我的代码:

$('#submit_fourth').click(function(){
        //send information to server
             $.ajax({
            type: 'POST',
            url: '<?php print site_url('orgnization/storeData'); ?>/'+fields


        });

    });

如代码所示,fields是包含数据的数组。现在,以下是firebug中的错误消息。

enter image description here

任何帮助?

4 个答案:

答案 0 :(得分:1)

您正在以错误的格式发送数据数组。请参阅下面的示例

$.ajax({
  type: "POST",
  url: "<?php print site_url('orgnization/storeData'); ?>",
  data: { name: "John", location: "Boston" }//your data will send in this format
})

答案 1 :(得分:1)

试试这个:

$('#submit_fourth').click(function(){
        //send information to server
             $.ajax({
            type: 'POST',
            data: {fields:fields},
            url: '<?php print site_url('orgnization/storeData'); ?>/'
           success: function(data)
            {
                  console.log('Success');
            }

            });

        });

并在PHP代码中:

    public function storeData()
    { 
      ....
      if($this->input->post())
      {
                $fields = $this->input->post('fields'); 
      }
      ....
    }

答案 2 :(得分:1)

在发布数据之前使用JSON.stringify();并在数据中提供它,不要追加到网址中。

$('#submit_fourth').click(function(){
    //send information to server
         $.ajax({
        type: 'POST',
        url: '<?php print site_url('orgnization/storeData'); ?>/',
        data: JSON.stringify(fields)


    });

});

答案 3 :(得分:0)

如果您想发送GET请求,请尝试此操作:

$data = array('foo'=>'bar',
              'baz'=>'boom',
              'cow'=>'milk',
              'php'=>'hypertext processor');


echo site_url('orgnization/storeData') . '?' . http_build_query($data);

type: 'POST'更改为type: 'GET'

如果你想发送POST:

$.post("<?php print site_url('orgnization/storeData'); ?>", <?php echo json_encode($data); ?>)
   .done(function( data ) {
      alert( "Data Loaded: " + data );
});