Php codeigniter项目中未评估Javascript变量
我正在使用codeigniter和jQueryAjax。我的应用程序在wamp上本地运行(工作正常),而我部署的应用程序(不太多)存在一些不一致。一次可能的修复建议是将ajax的相对路径转换为ajax的绝对路径,因此它看起来像: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
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",
我刚才回答了这个问题。在这里,我强烈建议您一步一步地做以下事情:
var BASE_URL = "<?php echo base_url();?>";
var 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;