无法使用AJAX发布表单

时间:2014-09-10 14:06:41

标签: jquery ajax

我试图使用AJAX发布值,我无法这样做,Watever可能会失败。

$("#displayInfo").hide();
   var csrfToken = document.getElementById("csrf").value;
   var csrfName = document.getElementById("csrf").getAttribute("name"); 
   var postfrmdata = $('#'+formid).serialize();
   var returnData= $.ajax({
       url: "ReportsSearchResults",
       type: "POST",
       data: postfrmdata,
       dataType: "json",
       beforeSend: function(xhr) {
          xhr.setRequestHeader(csrfName, csrfToken);
      }
    });
    returnData.done(function(res) {
    alert("Pass"+res);
});
returnData.fail(function(data) {
alert("fail"+data);
});
return false; 

请说明没有提交的原因

1 个答案:

答案 0 :(得分:0)

你做错了。我认为这是你正在寻找的(未经测试):

//If the form is submitted
$('form').submit(function( e ) {
    e.prevenDefault();
    $form = $(this); //Get this form

    //Post ajax request
    $.ajax({
        url: $form.attr('action'), //Get action attribute of the form
        type: "POST",
        data: $form.serialize(), //Serialize the form
        dataType: "json",
        .done(function() { //or success: function() {
                alert( "success" );
        })
        .fail(function() { //or error: function() {
                alert( "error" );
        })
        .always(function() { //or beforeSend: function() {
                alert( "complete" );
        });
    });
});

并提示:使用Firebug(Firefox插件/扩展程序)来测试后台发生了什么。它很棒。