2017-08-10 85 views
1

我有奇怪的stuf與JQuery表單提交。Jquery Ajax上傳進度正在重新加載頁面

上傳完成後,即使在服務器尚未完成處理的情況下,頁面也正在重新加載。

服務器只是返回一個JSON成功的狀態,所以它不在服務器端。

這裏「是代碼:

$form.on('submit', function (e) { 

     console.log('Submit form ' + fileNumber); 
     if ($form.hasClass('is-uploading')) return false; 

     $form.addClass('is-uploading').removeClass('is-error'); 

     if (isAdvancedUpload) { 
      e.preventDefault(); 
      e.stopPropagation(); 
      var ajaxData = new FormData($form.get(0)); 

      var $input = $form.find('input[type="file"]'); 


      if (fileToUpload) { ajaxData.append($input.attr('name'), fileToUpload); } 
      console.log('FileTo Upload: ' + fileToUpload); 

      $.ajax({ 
       url: $form.attr('action'), 
       type: $form.attr('method'), 
       data: ajaxData, 
       dataType: 'json', 
       xhr: function() { 
        var myXhr = $.ajaxSettings.xhr(); 
        if (myXhr.upload) { 
         myXhr.upload.addEventListener('progress', progress, false); 
        } 
        return myXhr; 
       }, 
       cache: false, 
       contentType: false, 
       processData: false, 
       beforeSend: function (xhr,settings) { 

       }, 
       complete: function (xhr, status) { 
        xhr. 
        //$form.removeClass('is-uploading'); 
        //fileNumber++; 
        //fileToUpload = droppedFiles[fileNumber]; 
        //if (fileToUpload) { $form.submit(); } 
       }, 
       success: function (data,status,xhr) { 
        //$form.addClass(data.success === true ? 'is-success' : 'is-error'); 
        //if (!data.success) $errorMsg.text(data.error); 
       }, 
       error: function (xhr,status,error) { 
       } 
      }); 

     } else { 
      // ajax for legacy browsers 
     } 
    }); 

問題就在這裏:

xhr: function() { 
        var myXhr = $.ajaxSettings.xhr(); 
        if (myXhr.upload) { 
         myXhr.upload.addEventListener('progress', progress, false); 
        } 
        return myXhr; 

如果我刪除返回myXhr頁面上傳後,不重裝,但我沒有進展報告

我不知道該怎麼做,以防止重新加載。

謝謝。

回答

1

我發現了問題。

xhr對象沒有問題。

該問題來自Visual Studio Browser Link。

把它打倒後,一切都很完美。

瀏覽器鏈接,一個顯而易見的原因是重新加載頁面。

將與ASP.NET Core團隊見面

0

嘗試改變插嘴類型提交按鈕,實現點擊功能

如:

$("#buttonID").click(function() { 
    //your code 
}); 
+0

表單不是通過按鈕單擊提交的。 – Julien