在jquery 1.3.2中反复工作的ajax只能在1.7.1中首次使用

时间:2011-12-12 12:33:36

标签: javascript jquery ajax

以下是代码:

    $(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

2 个答案:

答案 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(

对不起浪费时间......