【问题标题】:jquery Ajax call Codeigniter Controllerjquery Ajax 调用 Codeigniter 控制器
【发布时间】:2015-01-17 20:03:22
【问题描述】:

在我的视图页面中像这样调用 jquery Ajax

onclick: function() {
                        $.ajax({
                            type:'POST',
                            url:"<?PHP echo base_url('trand/report/checking'); ?>",
                            data: {nm:'vnky'},
                            success: function(){
                                  alert("success");
                              },
                              error: function(){
                                alert("error");
                              }
                        });
                        chart2.exportChart({
                            type: 'image/png', 
                            filename: dynmicfilename
                        });

                    }

exportchart 功能完美运行。在 ajax 调用内部也可以很好地发出警报,但 url 没有被执行,通过在新选项卡中单击 url 时使用 firebug ,然后它工作正常。

如何在 ajax 调用中执行 url。你能帮忙吗?

【问题讨论】:

    标签: jquery ajax codeigniter controller


    【解决方案1】:

    这是我的代码。我的控制器返回json数据

    $('.edit').click(function() {
        $.ajax({
            url: '<?php echo site_url('your_controller'); ?>',
            type: 'POST',
            data: {
                key: value
            },
            dataType: 'json',
            success: function(data) {
                console.log(data);
            }
        });
    });
    

    在 Ajax 调用中,哪个警报显示成功错误? 我认为您的 JS 代码是正确的。你应该检查你的控制器。如果你在浏览器中打开它并且它工作正常。您应该检查 csrf_protection 配置是 TRUE 还是 FALSE

    【讨论】:

    • 我的控制器也很好。当我在浏览器中打开它工作正常。配置中的 csrf_protection 我现在更改为 TRUE,但同样的问题 url 问题。 @Minh Quy
    • 打开这个文件application/config/config.php,找到这个值csrf_protection。如果csrf_protection = TRUE,则应将其更改为FALSE
    • 启用 csrf 保护后,对于每个 POST 请求,CI 都会检查表单数据中的 csrf 令牌。您使用 Ajax 发出 POST 请求并缺少此令牌
    • 是的,它的默认值为 False。我现在改为 False。但我仍然遇到 url 问题。 ajax 函数执行但 url 没有执行
    • 哦。那么显示的是哪个警报?成功还是错误?打开 Firebug 并查看 http 代码?
    【解决方案2】:

    function generate_dateOfBirth()
    {
    
        $data = $this->input->post('data', TRUE);
    
        if (!empty($data))
        {
    
            // Check if the ID Number supplied is not less than 13 characters
            if ( strlen(trim($data)) == 13)
            {
                $year = substr($data, 0, 2);
                $month = substr($data, 7, 2);
                $day = substr($data, 4, 2);
    
                $dateOfBirth = $year .'/'. $month .'/'. $day ;
    
                echo $dateOfBirth;
            }
            else
            {
                echo 'You have entered Invalid ID number above';
            }
    
        }
    } 
    
    $('#id_number').on('change', function()
            {
                var dob = $(this).val(); 
    
                $.ajax({
    
                        url: '/generate_date',
                        method: 'POST',
                        data: 'data=' + dob,
                        cache: false,
                        type: 'json',
                        success:function(data){
                          //update Increase month
                          $('#dob').val(data);
                        }
    
                }); //End of ajax call
    
            }); $route['generate_data'] = 'Controller Name/function in the controller doesn"t contain html';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-05
      • 1970-01-01
      • 2012-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-26
      • 2014-06-01
      相关资源
      最近更新 更多