我有一种我从未见过的奇怪情况。我有一个jquery ajax,它调用一个执行sql查询的方法,构建json响应并将其写回响应流。
一旦执行了ajax调用,就会使用null响应文本激活complete函数....我可以调试该方法,看看它是在构建响应并返回它。只是不确定这里有什么想法吗? ASP .net如果有帮助的话。
jQuery.ajax({
url: 'Data/ServiceCalls.aspx?SelectRequestsWithDate=1&start_date=' + escape(jQuery("#request_start_date").val()) + '&end_date=' + escape(jQuery("#request_end_date").val()) + "'",
type: "POST",
dataType: "json",
success: function (jsonresponse, stat) {
if (stat === "success") {
var thegrid = jQuery("#grid_requests")[0];
var jsonObject = eval('(' + jsonresponse.responseText + ')');
thegrid.addJSONData(jsonObject);
jsonresponse = null;
thegrid = null;
}
}
});
答案 0 :(得分:1)
当您使用POST时,您可以尝试将数据作为POST值发送,而不是将GET附加到您的网址,例如:
jQuery.ajax({
url: 'Data/ServiceCalls.aspx",
type: "POST",
dataType: "json",
data : {"SelectRequestsWithDate" : 1"...},
......
或尝试使用GET作为您的类型
答案 1 :(得分:0)
如果要调试,只需将成功回调函数移动到另一个函数:
jQuery.ajax({
url: 'Data/ServiceCalls.aspx?SelectRequestsWithDate=1&start_date=' + escape(jQuery("#request_start_date").val()) + '&end_date=' + escape(jQuery("#request_end_date").val()) + "'",
type: "GET",
dataType: "json",
success: callback
});
function callback (jsonresponse, stat) {
if (stat === "success") {
var thegrid = jQuery("#grid_requests")[0];
var jsonObject = eval('(' + jsonresponse.responseText + ')');
thegrid.addJSONData(jsonObject);
jsonresponse = null;
thegrid = null;
}
}
答案 2 :(得分:0)
我感谢您的所有建议。问题似乎是我在jqgrid中进行了ajax调用。无论出于何种原因,它都会立即触发成功功能。我把它移到网格外面,一切都开始工作了。
不是最好的答案,但也许会帮助别人。
布雷克