ajax调用控制器中的函数codeigniter

时间:2015-07-03 18:14:38

标签: javascript php jquery ajax codeigniter

我使用的是codeigniter 3,我使用ajax时遇到了一个奇怪的问题。我试图同时调用两个ajax,我认为我的ajax代码有问题而且我问了question here并且没有任何对我有用。

我一直在使代码更简单并缩小范围,直到我发现问题似乎与codeigniter有关

这是我的js代码:

        do_download();
        get_operation_status();

        function get_operation_status() {
            //var url_process_info = "http://www.example.com/public/sleep_status.php";// this url works as expected 
            var url_process_info = "<?php echo site_url(); ?>download/sleep_status";

            $.ajax({
                url: url_process_info,
                dataType: 'json',
                async: true,
                method: "GET",
                success: function (data) {

                },
                complete: function (){
                    get_operation_status();

                }
            });
        }


        function do_download(){
            //var download_url = "http://www.example.com/public/sleep_download.php"; // this url works as expected 
            var download_url = "<?php echo site_url(); ?>download/sleep_download";

            $.ajax({
                url: download_url,
                method: "POST",
                async: true

            });
        }

我的PHP代码,在下载控制器中,我有两个仅用于测试的功能:

 public function  sleep_status () {
        sleep(1);
    }
    public function sleep_download(){
        sleep (7);
    }

将ajax调用到控制器下载,它显示了在执行第一个调用之前保持第二个调用未决的问题。

我创建了两个php文件并将它们放在/public/sleep_download.php和/public/sleep_status.php

并在两个文件中只是代码的休眠行,并且它可以正常工作,而第一个调用正在运行,第二个ajax调用已被多次执行。

编辑:我可以通过使类不从CI_Controller扩展来使其工作,我创建了一个名为Action的新类,我对此部分进行了评论:

class Action /*extends CI_Controller*/ {

虽然我可以让它发挥作用,但我仍然想知道它为什么会发生?还有更好的解决方案吗?

0 个答案:

没有答案