我正在使用codeigniter和jquery ajax。我在我的应用程序本地使用wamp(完美运行)和我部署的应用程序(不是那么多)有一些不和。一旦可能的建议修复是将ajax相对路径转换为ajax的绝对路径,所以它看起来像:
url: "YOURBASEPATH/AjaxController/update",
location.href = "YOURBASEPATH/pan_controller/my_detail";
关注Convert ajax relative paths to absolute paths with codeigniter我已将代码更改为:
在标题部分中,只需添加以下脚本。
<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;
答案 0 :(得分:1)
我之前回答过这个问题。在这里,我强烈建议您一步一步地做以下事情:
打开标题文件视图的标题部分,并在调用任何自定义jquery或javascript文件之前放置以下脚本:
var BASE_URL = "<?php echo base_url();?>";
现在,在您的自定义jQuery文件中,您将获得BASE_URL作为变量。
但请记住,您只需要为整个项目使用一个头文件。
如果您遇到任何进一步的问题,请与我分享您的查看文件结构。
答案 1 :(得分:1)
你的语法错了。如果您希望在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;
答案 2 :(得分:0)
这有什么问题?
url: "/AjaxController/update",