【问题标题】:ajax jquery with codeigniter. url doesnt access controller带有codeigniter的ajax jquery。 url 不访问控制器
【发布时间】:2012-05-11 00:22:08
【问题描述】:

我是 codeigniter 的新手,无法让我的 ajax 工作。
我正在尝试使链接在单击时将内容加载到主文档中。
我寻找说明,但无法弄清楚。除 ajax 外的所有工作都返回 alert('ERROR') 消息。没有任何内容加载到 <div id='load_here'></div>
也许我在 config.php 中遗漏了一些东西?我是否必须加载一些库才能使其工作? 任何想法都会有所帮助 //主文档链接

<span id='reg_link_rules'>Link</span>  
<div id='load_here'></div>

// 控制器

class Register extends CI_Controller {
   public function hello()
   {
      echo 'hello';
   }
}

// jQuery

$(document).ready(function() {
    $('#reg_link_rules').click(function(eve){

    $.ajax({
      type: "GET", 
      url: "register/hello", 

      complete: function(data){
        $('#load_here').html(data);
    },
    error: function(){alert('error');}
    });
  });
});

我认为问题在于 ajax url 没有访问控制器。 Z:/home/codeigniter/www/register/test 这是我认为需要的地方

问题解决了,url需要http://codeigniter/index.php/register/hello

【问题讨论】:

    标签: php javascript jquery ajax codeigniter


    【解决方案1】:

    尝试使用 url:“/register/hello”。

    可能会成功。

    通常我会做一个

    <script type="text/javascript">
        base_url = '<?=base_url()?>';
    </script>
    

    在我的页面的开头,只是

    base_url+"register/hello"
    

    改为

    这让我的 ajax 更可靠,即使 / 不正确。

    【讨论】:

    • 我想知道该怎么做,谢谢。但这并没有解决问题
    • 如何在 .js 文件中使用 php 代码。所以我需要 js 文件的主页 url 代码??
    • PHP 是对您的服务的命令。 Javascript 在您的浏览器中运行。上面的例子在你的 javascript 文件被加载之前定义了base_url
    【解决方案2】:
    complete: function(data){
            $('#load_here').html(data);
        },
    

    应该是

    只是引用另一个 SO 问题...Use success() or complete() in AJAX call

    success: function(data){
            $('#load_here').html(data);
        },
    

    $.ajax({
      type: "GET", 
    

    应该是

    除非您希望在 URL 中提交表单变量。

    $.ajax({
      type: "POST", 
    

    【讨论】:

    • GET 或 POST 在这里并不重要,因为我们没有在这里获取或发布任何资源。但逻辑是合理的。我们需要成功回调函数
    • 我完全同意,但是除非用户有特定的理由使用 GET,否则应该根据最佳实践使用 POST。尤其是在开发 REST-ful API 时,就像我认为他正在做的那样。 +1 澄清。
    • 我同意你的观点,这是最好的编程习惯。
    • 感谢您的宝贵时间。我之前确实尝试过成功并完成了,但都没有成功。除了我自己的代码之外,问题可能出在其他地方吗?
    【解决方案3】:

    您好,您应该将基本 url 添加到 URL Ajax。

     $.ajax({
      type: "GET", 
      url: <?php echo base_url();?>"register/hello", 
    
      complete: function(data){
        $('#load_here').html(data);
    },
    

    记得在 Controller 中启用帮助 URL!

    干杯

    【讨论】:

      【解决方案4】:
      you need to pass the bas_url to ajax file
      
      <script type="text/javascript">
      
      $(document).ready(function(e) {
          var baseurl = <?php echo base_url();?>
      
          $('#reg_link_rules').click(function(){
      
              $.ajax({
                  url : baseurl+'index.php/register/hello',
                  data : '',
                  type: "POST",
                 success : function(){
      
      
                  }
              })
              return false;
          })
      
      });
      
      </script>
      

      【讨论】:

        【解决方案5】:

        有时您确实需要将 index.php 添加到字符串中。像这样:

         $.ajax({
          type: "GET", 
          url: <?php echo base_url();?>"index.php/register/hello", 
        
          complete: function(data){
            $('#load_here').html(data);
        },
        

        但这一切都与您的配置文件有关。这是我的错误。 希望能帮助到你。

        【讨论】:

          【解决方案6】:

          你需要确保两件事

          请将你的ajax部分作为url: ?php echo base_url();?>“register/hello”,并输入:“GET”,还需要检查它是否路由到config/routes.php上的url .

          【讨论】:

            猜你喜欢
            • 2013-02-24
            • 2015-03-01
            • 2014-02-23
            • 2015-01-17
            • 1970-01-01
            • 2014-04-26
            • 1970-01-01
            • 1970-01-01
            • 2012-02-11
            相关资源
            最近更新 更多