代码点火器项目中未评估Javascript变量


Javascript variable not being evaluated in codeigniter project

我正在使用codeigniter和jquery ajax。我在wamp上的本地应用程序(运行良好)和部署的应用程序(不太好)之间存在一些不一致。建议的修复方法是将ajax的相对路径转换为ajax的绝对路径,因此看起来像:

url: "YOURBASEPATH/AjaxController/update",
location.href = "YOURBASEPATH/pan_controller/my_detail";

下面用codeigniter将ajax相对路径转换为绝对路径我已将代码更改为:

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

<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";
                });
              }
           })

我认为这会起作用,但由于某种原因,BASE_URL没有被识别为变量,而不是查看例如:

url: "YOURBASEPATH/AjaxController/update",

我看到了:

url:  BASE_URL+ "/AjaxController/update",

当我查看来源时。

我没有看到我的编辑有任何错误。有什么想法为什么不起作用吗?

编辑:

   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',
                    .done(function() { 
                        alert("REFRESHING..");
                         location.href = BASE_URL+"pan_controller/detail";
                       });
               })

                } else { alert("nothing checked") }
              break;

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

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;

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

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

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

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

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

这有什么问题?

url: "/AjaxController/update",