Php codeigniter项目中未评估Javascript变量

Php codeigniter项目中未评估Javascript变量,php,jquery,ajax,codeigniter,Php,Jquery,Ajax,Codeigniter,我正在使用codeigniter和jQueryAjax。我的应用程序在wamp上本地运行(工作正常),而我部署的应用程序(不太多)存在一些不一致。一次可能的修复建议是将ajax的相对路径转换为ajax的绝对路径,因此它看起来像: url: "YOURBASEPATH/AjaxController/update", location.href = "YOURBASEPATH/pan_controller/my_detail"; 以下我已将代码更改为: 在标题部分,只需添加以下脚本 <scr

我正在使用codeigniter和jQueryAjax。我的应用程序在wamp上本地运行(工作正常),而我部署的应用程序(不太多)存在一些不一致。一次可能的修复建议是将ajax的相对路径转换为ajax的绝对路径,因此它看起来像:

url: "YOURBASEPATH/AjaxController/update",
location.href = "YOURBASEPATH/pan_controller/my_detail";
以下我已将代码更改为:

在标题部分,只需添加以下脚本

<script type="text/javascript">
    var BASE_URL = "<?php echo base_url();?>";
</script>

$.ajax({a
               type: "POST",
               url: BASE_URL+"AjaxController/update",
               data:{ i : searchIDs, m : message },                        
               dataType: 'json',
               .done(function() { 
                    alert("REFRESHING..");
                    location.href = BASE_URL+"pan_controller/my_detail";
                });
              }
           })
我明白了:

url:  BASE_URL+ "/AjaxController/update",
当我看来源的时候

我在我的编辑器中没有看到任何错误。你知道为什么这不起作用吗

编辑:


这个怎么了

url: "/AjaxController/update",

我刚才回答了这个问题。在这里,我强烈建议您一步一步地做以下事情:

  • 更新config.php中第17行的基本url
  • 打开头文件视图的头部分,并在调用任何自定义jquery或javascript文件之前放置以下脚本:

    var BASE_URL = "<?php echo base_url();?>";
    
    var BASE_URL=”“;
    
  • 现在,在自定义jQuery文件中,您将获得BASE_URL作为变量

  • 但请记住,整个项目只需使用一个头文件。


    如果您面临任何进一步的问题,请与我分享您的视图文件结构。

    您的语法错误。如果希望函数在ajax请求后运行,请使用
    complete
    回调,还应使用success和error回调进行调试:

    case "Set":
        var message = $('#send_message').val();
        if (searchIDs.length>0){
            console.log(BASE_URL+ "Update/update");
    
            $.ajax({
                type: "POST",
                url: BASE_URL+"Update/update",
                data:{ i : searchIDs, m : message },
                dataType: 'json',
                success: function(data) {
                    console.log(data);
                },
                error: function(data) {
                    console.log(data);
                }
                complete: function() {
                    alert("REFRESHING..");
                    location.href = BASE_URL+"pan_controller/detail";
                }
        })
    
    
        } else { 
            alert("nothing checked");
        }
    break;
    

    javascript在客户端运行-源代码视图向您显示代码,而不是其输出。尝试添加
    console.log(BASE_URL+“/AjaxController/update”)或者如果您没有使用带有js控制台的浏览器
    警报(BASE_URL+“/AjaxController/update”)
    您应该会看到完整的url我很确定
    base\u url()
    返回
    'YOURBASEPATH'
    。试着看看这行代码生成了什么。正如@Steve所说的,您看到的是您应该在该行的源代码中看到的内容。遵循他的建议,并在源代码中查找执行PHP echo和设置
    BASE\uURL
    的位置。这应该显示
    var BASE\u URL=“/YOURBASEPATH”
    您是否设置了
    $config['base\u url']='http://example.com/yourfolder';在config.php?有一个输入错误
    $.ajax({a
    删除
    a
    ,请看这里如何进行javascript重定向。另一件事是不要将
    var BASE_URL=“”;
    此代码放入js文件。将它们放入php文件(查看文件)中如果当前页面为
    http://localhost/folder/controller
    它将识别为
    http://localhost/AjaxController/update
    但它应该是
    http://localhost/folder/AjaxController/update
    如果设置
    $config['base\u url']	= 'http://localhost/folder/“;
    它将返回
    ”http://localhost/folder/“;
    因此,如果您希望它相对于当前页面,您可以使用:
    url:”./AjaxController/update“,
    这看起来更像是一个应用程序架构问题,而不是“如何在javascript中解析url?”问题。谢谢,我尝试了url:“/AjaxController/update“,但它不起作用。再次感谢您查看它。不客气。无论如何,如果答案对您有帮助,请接受它。它将帮助您获得更多解决方案。Arif,再次感谢。在这种情况下,它对我没有帮助,但我对它投了更高的票,因为它是有用的信息,我感谢您花时间提供帮助。向您致意,-比尔
    var BASE_URL = "<?php echo base_url();?>";
    
    case "Set":
        var message = $('#send_message').val();
        if (searchIDs.length>0){
            console.log(BASE_URL+ "Update/update");
    
            $.ajax({
                type: "POST",
                url: BASE_URL+"Update/update",
                data:{ i : searchIDs, m : message },
                dataType: 'json',
                success: function(data) {
                    console.log(data);
                },
                error: function(data) {
                    console.log(data);
                }
                complete: function() {
                    alert("REFRESHING..");
                    location.href = BASE_URL+"pan_controller/detail";
                }
        })
    
    
        } else { 
            alert("nothing checked");
        }
    break;