以下是代码:
$(document).ready(function() {
$().ajaxStart(function(){
alert("in ajaxStart")
//tried removing $.blockUI( below, same thing. don't see alert
//$.blockUI({ message: '<h1><img src="images/ajax-loader.gif" /> Running query...</h1>' });
});
$().ajaxStop(function(){
$.unblockUI()
});
...
$("#frmQUERYSUBMIT").submit(function(e) {
...
$.ajax({
type: "POST",
url: '/execquery/' + jsonQuery,
//datatype: JSON, //original, incorrect
datatype: "json", //still get same problem with correct usage
success: function(data, textStatus) {
$("#status p").html(data);
},
async: true
});
...
});
});
在1.3.2中,这工作正常,到达服务器,给了我预期的数据。当我升级到1.7.1时,它运行一次(每次打开浏览器),但所有后续执行都不执行任何操作。如果我通过firebug中的代码逐步执行,它会显示每次都是从一行到另一行,但实际上只是第一次执行某些操作。此外,在1.7.1中,$().ajaxStart(
也只是第一次运行,而不是后续运行。
TIA
编辑:我最初发布的是我的服务器日志在后续尝试中没有显示连接。这是一个错误。日志显示已建立连接,并给出响应。它只是没有出现在浏览器中。
编辑:FWIW,在1.3.2中,数据以"{"queries":{"f.sp":{"1d":{"show_results":{"19820611":-2.6893769610040343,..."
的形式返回;但在1.7.1中,它以Document形式返回,并表示类型为application/xml
答案 0 :(得分:1)
JSON不是有效的数据类型,请尝试提供datatype: 'json'
答案 1 :(得分:0)
问题#1,javascript无法使用的数据由此解决:https://stackoverflow.com/a/250245/403748,
beforeSend: function(x) {
if(x && x.overrideMimeType) {
x.overrideMimeType("application/j-son;charset=UTF-8");
}
},
和问题#2由https://stackoverflow.com/a/4034337/403748
解决$(document).ajaxStart(
而不是
$()。ajaxStart(
对不起浪费时间......