我在使用jquery调用ajax请求时遇到问题。 我这样做的顺序是:
由于某种原因并且怀疑它与我在点击回调中的事实有关,即加载功能超出了范围。但我甚至没有看到console.log消息。但我确实看到了ajax电话。
有什么想法吗?也许我这样做是错误的???
这是原型代码,类似于我正在尝试做的事情:
$(document).ready(function(){
$('#button').on('click',function(evt){
var data = {};
ajax('index.html', data).done(function(){
console.log('Fire Please'); // this does not fire after the ajax call!!!
load(); // this does not fire after the ajax call!!!
});
});
function load(){
// do another ajax call and add to the dom
}
function ajax(url, data){
return $.ajax({
url: url,
type: 'post',
dataType: 'json',
data: data
});
}
});
这是我正在尝试使用的实际代码
(文档)$。就绪(函数(){
// add onclick event to the Add Unit Button
addUnitButt.on('click', function(evt){
var data = {
id: id,
dept_no: dept_no.val(),
dept: dept.val()
};
evt.preventDefault();
dept.val('');
dept_no.val('');
$(this).prop('disabled', true);
ajax('index.html', data).done(function(){
load();
});
});
function load(){
var data = {
id: 575
};
// show loading
showLoading();
// reset the table dom
$("#listTable").find("tr:gt(0)").remove();
// do initial load of the list data
ajax('index.html', data)
.done(function(units){
var data = toJSONObject(units);
for(var x = 0; x < data.length; x++){
if((x & 1) == 0){
addRow(data[x], data.length, 'odd');
}else{
addRow(data[x], data.length, 'even');
}
}
// hide loading
hideLoading();
});
}
// ajax function to call for data
function ajax(url, data){
return $.ajax({
type: 'POST',
data: data,
dataType: 'json',
url: url
});
}
});
提前致谢!
答案 0 :(得分:0)
Zip
必须被调用。
确保您的服务器响应具有.always()
之类的正确标头。响应正文是有效的JSON。
答案 1 :(得分:0)
您的index.html的代码可能无效JSON