AJAX成功返回HTML文件而不是数据值?

时间:2018-05-08 07:32:21

标签: php ajax codeigniter

我有这个简单的AJAX代码,只要他成功登录仪表板就可以获得User Timezone

JS

<script type="text/javascript">
$(document).ready(function(){
    'use strict';
    /**
     * Getting user current timezone offset
     */
    var timezone_offset = new Date().getTimezoneOffset();

    timezone_offset = timezone_offset == 0 ? 0 : -timezone_offset;
    $.ajax({
        type: "POST",
        url: "<?php echo base_url('dashboard'); ?>",
        data: {"timezone": timezone_offset},
        cache: false,
        success: function(data){
            alert(data);
        },
        error: function(){
            console.log('error');
        }
    });

});
</script>

控制器

public function index()
{
    $data = $this->global_data->logged_user();
    $data['page_title']     = 'Dashboard';
    $data['page_directory'] = 'pages/dashboard';
    $data['greeting']       = $this->global_helpers->greeting() . ' !';

    $chart_data = array();
    $order_history = $this->trade_history->chart_data();
    foreach($order_history AS $d)
    {
        $chart_data[] = array(
            'y' => $this->global_helpers->month_name($d->month) ."' ". $d->year,
            'a' => $d->profit,
            'b' => $d->loss
        );
    }

    echo $_POST['timezone'];

    $data['chart_data'] = json_encode($chart_data);
    $this->load->view('template', $data);
}

但问题是,当它成功时,为什么它会返回HTML标题?不是我希望获得的数据?

enter image description here

我在这里做错了什么?我将此AJAX代码放在footer.php文件中。抱歉这个愚蠢的问题,但我刚刚被困在这里。

我感谢任何帮助,谢谢!

被修改

很抱歉这个愚蠢的帖子,我无法使用这种方式,我只需要创建另一个控制器来处理任何类型的AJAX值,所以问题将得到解决。

1 个答案:

答案 0 :(得分:1)

嗯,无论如何,你无法在警报中呈现HTML。

我看到你最终解决了这个问题,但是,仅供参考,如果您需要控制器将HTML作为数据返回,请使用view方法的第三个参数:

$attachements = $invoice->getAttachments(); foreach($attachements as $attachement){ /** @var UploadedFile $file */ $file = $attachement->getFile(); // This is the file $attachement->setPath($this->fileUploader->upload($file)); }

See more at Codeigniter docs:)