我觉得这一定是我忽视的愚蠢的事情…在这个文件中,我对同一个控制器进行了一堆其他AJAX调用,这些调用都工作得很好,我只是看不出这个有什么不同!
url应该是:
https://dev.vmc.w3.uvm.edu/nefin-xana/data/ajax_deleteTableRun
(其中Data.php为控制器名)
但是我一直得到错误:
POST https://dev.vmc.w3.uvm.edu/nefin-xana/program_overview/data/ajax_deleteTableRun 404 (Not Found)
当ajax_deleteTableRun被调用时,视图的名称是program_overview。不知何故,它被添加到AJAX调用的URL中?
function deleteTableRun(runId) {
posturl='data/ajax_deleteTableRun';
var data= {};
data['runId']=runId;
$.ajax({
url: posturl,
data: data,
type: "POST",
dataType: 'json',
error: function (xhr, status, error) {
console.log(xhr);
console.log(status);
console.log(error);
},
success: function (data) {
console.log(data);
}
});
}
在Data控制器:
public function ajax_deleteTableRun() {
$postData=$this->input->post();
$runId=$postData['runId'];
$this->manage_model->delete_table_run($runId);
}
调用ajax的URL是
https://dev.vmc.w3.uvm.edu/nefin-xana/program_overview
和你的代码使用相对URL
posturl='data/ajax_deleteTableRun';
因此,JS正确地将相对URL附加到原始URL后面。
可以考虑使用绝对url
posturl='/data/ajax_deleteTableRun';