我目前正在尝试调试Code Igniter(3)方法。我有一个名为sync
的方法,它在数据库中同步(保存)表单数据。它使用jQuery / AJAX调用。单击提交按钮后,它将返回状态代码为200的XHR(以及一个空响应文本) - 表示调用本身似乎成功,但它仍然会抛出一个parsererror。我放置了一些log_message()
标志来找出方法似乎崩溃的位置:
public function sync(){
$i = 0;
log_message('debug',"Flag ".$i);
$i++;
// ... Steps in between, etc.
但是日志记录系统没有注册任何内容,表明同步方法似乎甚至没有被调用。我确信AJAX调用中提交的路径是正确的:
$("#sync-btn").click(function(){
var form = $("#annotation-sync");
var submit_form_data = form.serialize();
console.log(submit_form_data);
$.ajax({
type :'POST',
url : "http://localhost/Project/"+"index.php/annotate/sync",
data : submit_form_data,
dataType: 'json',
encode : 'true',
beforeSend: function(){
timeout = setTimeout(function(){
form.find(".load").fadeIn();
}, 1000);
},
success: function(res) {
console.log(res);
$(".navbar-header button").prop("disabled",true);
},
error: function(jqXHR, errorThrown) {
console.log('jqXHR:');
console.log(jqXHR);
console.log('errorThrown:');
console.log(errorThrown);
}
})
有谁知道如何调试此类错误?
答案 0 :(得分:0)
鉴于这个问题的寿命很短,我希望这是合适的。我发现了问题所在:
$route["annotate/(:any)"] = "annotate";
显然,呼叫会被重定向,因此"annotate/sync"
被重定向到"annotate/"
。我想我必须阅读更多CodeIgniter的路由。
答案 1 :(得分:0)
请删除dataType:' json'因为它没有响应我看到的任何json数据。还要检查网址是否正确