2011-09-17 49 views
2

我想简单地使用jQuery的ajax方法和方法只调用错误回调。简单问题jQuery ajax方法

$('form').submit(function() { 
    $.ajax({ 
     url: this.action, 
     data: $(this).serialize(), 
     type: 'POST', 
     dataType: 'html', 
     success: function() { 
      debugger 
      alert('alert'); 
     }, 
     error: function(xhr, status, error) { 
      //status value is "error". 
     } 
    }); 
}); 

我正在请求ASP.NET MVC操作方法。方法按预期获取请求并返回部分视图,没有任何问题。然后jquery调用错误回调而不指定详细的错误信息。我想知道一些有关错误的细节,然后我可以决定可能导致错误的原因。

编辑:我测试了下面的代码,它的工作原理没有问题。我刚刚取消了表单提交事件。

$('form').submit(function(e) { 
    e.preventDefault(); 
    $.ajax({ 
     url: this.action, 
     data: $(this).serialize(), 
     type: 'POST', 
     dataType: 'html', 
     success: function() { 
      debugger 
      alert('alert'); 
     }, 
     error: function(xhr, status, error) { 
      //status value is "error". 
     } 
    }); 
}); 

还在回答正在等待正确答案谁能告诉我这个错误的原因。

+0

我检查了this.action并返回窗体的绝对URL。 – AnyOne

+0

您说“按预期方法获取请求”;你的意思是控制器期待GET请求?因为你正在POST请求。此外,您会希望'返回false;'在AJAX调用之后提交表单。另外,Firebug会在控制台中给你任何错误吗? – Alex

+0

@Alex - 不,我的意思是刚刚获得请求的方法。控制器方法没有问题。和铬调试控制台不会抛出任何错误。但为什么我得到错误,如果我不打电话e.preventDefault() – AnyOne

回答

1

难道是参考文献this.action是undefined?看看你最喜欢的dom检查员的网络选项卡或只是萤火虫的错误控制台。 POST请求是否与预期一致? (检查URL,数据发送,错误代码等)

$ (this).attr('action')肯定会工作,假设this指向窗体。