1

我讓用戶選擇一個文件上傳。但上傳永遠不會在一個非常奇怪的情況下完成。做ajax文件上傳時的超時

工作用例:一旦頁面加載完成,用戶選擇一個文件並上傳,它總是上傳。

不能正常使用的情況下:一旦頁面加載完成後,用戶盯着屏幕一兩分鐘,然後選擇一個文件上傳,上傳幾乎永遠不會結束。我們不知道凝視多久,但通常2到5分鐘。該問題僅在Windows 7計算機上的IE 11中出現。在同一臺機器上,Chrome和Firefox工作正常。 IIS Web服務器不是負載平衡的,但它也發生在負載平衡的環境中。上傳永不完成時,期望POST的控制器永遠不會收到請求,IIS日誌也永遠不會收到POST請求。

更新: 我發現,開發網絡服務器是一臺服務器,但它實際上是在負載平衡的環境,因爲我們的QA環境有兩個Web服務器和負載平衡。據說,出現問題是由負載平衡器造成的。因爲如果通過節點名稱將文件發佈到服務器URL,則上載工作。但是,如果發佈到負載平衡器,則會失敗。我會看看我的網絡人員是否可以找到解決方案。我不相信這是一個代碼問題,或者我錯了嗎?

var FormEdit = function() { 
    var that = {}; 

    that.upload = function() { 
     var data = new FormData(); 
     var fileInput = $('#fileInput')[0]; 
     var file = fileInput.files[0]; 
     data.append(file.name, file); 

     $.ajax({ 
      type: 'post', 
      dataType: 'json', 
      url: url, 
      data: data, 
      processData: false, 
      contentType: false, 
     }).fail(function() { 
     }).then(function (data) { 
     }).always(function() { 
     }); 
    }; 
}; 
+0

如果服務器從未收到請求,則可能是您正在測試的計算機存在問題。您是否嘗試過使用IE11的另一臺計算機 – adeneo

+0

是的,我嘗試了使用相同瀏覽器和操作系統的其他幾臺PC,並且遇到同樣的問題。這是一個企業環境,所以大多數PC都是相似的。 –

+0

介意分享腳本所吸引的觸發器?還有你用於發送的文件大小有多大? –

回答

0

我解決了這個問題,但不認爲這是最好的方法。

就在我做HTTP POST上傳文件之前,我做了一個HTTP GET,然後是HTTP POST。到目前爲止,它總是以這種方式工作。

我的網絡人說IE 11的連接超時時間爲1分鐘。如果連接超時,您運氣不佳,但要再次創建一個新連接以供文件上傳。