簡體   English   中英

IE無法從SharePoint 2010文檔庫下載CSV文件

[英]IE unable to download CSV files from SharePoint 2010 document library

我在SP2010中開發了一個Web應用程序。 整個應用程序都使用SPServices用JavaScript完成,因為客戶(Marine Corp.)不想在其環境中進行任何.NET開發。 客戶希望能夠下載Excel電子表格中的所有報告,以便他們可以執行任何操作。 由於不可能用JavaScript生成Excel電子表格,因此我想到的解決方法是用JavaScript生成CSV,然后將其保存到文檔庫中,然后將瀏覽器指向CSV文件進行下載。 這工作得很好。 即使從技術上講它不是Excel,但客戶對此一無所知。 它只是提供了他們要求的內容:在Excel中打開報告。 但是有一天,該客戶說出口已停止工作。 我花了大約一天半的時間來嘗試找出問題所在,找到解決方案,所有這些爵士樂。 這是我注意到的:

  • 瀏覽器將“ .csv”擴展名更改為“ _csv”
  • 當您在下載對話框中單擊“保存”時,瀏覽器報告“無法下載[[文件名] _csv [重試] [取消]”
  • 使用協議分析器查看來自SP服務器的響應標頭時,SP服務器在內容配置中為瀏覽器提供了正確的文件名
  • 該問題在所有版本的IE中都存在,但在FF中可以正常工作。 沒有對Chrome / Safari進行測試

這是SP2010服務器的HTTP響應標頭:

HTTP/1.1 200 OK
Cache-Control   private,max-age=0
Content-Length  27739
Content-Type    application/octet-stream
Expires Sun, 28 Jul 2013 13:42:43 GMT
Last-Modified   Mon, 12 Aug 2013 13:42:43 GMT
ETag    "{AE0131B1-3C1D-4E24-BB97-D4D0EB8C69F2},20"
Server  Microsoft-IIS/7.5
SPRequestGuid   903d68dc-6f49-4fd8-acbc-2b22c4ee28ef
Set-Cookie  WSS_KeepSessionAuthenticated={cbef9658-700b-421b-87d5-08fbdc520faf}; path=/
X-SharePointHealthScore 0
ResourceTag rt:AE0131B1-3C1D-4E24-BB97-D4D0EB8C69F2@00000000020
X-Content-Type-Options  nosniff
Content-Disposition attachment; filename=test.csv
X-Download-Options  noopen
Public-Extension    http://schemas.microsoft.com/repl-2
Set-Cookie  WSS_KeepSessionAuthenticated={cbef9658-700b-421b-87d5-08fbdc520faf}; path=/
X-Powered-By    ASP.NET
MicrosoftSharePointTeamServices 14.0.0.6029
Date    Mon, 12 Aug 2013 13:42:42 GMT

由於IE似乎是唯一受影響的瀏覽器,因此我不確定問題是否出在服務器響應上。 但是話又說回來,我來自LAMP開發背景,因此其中一些標頭對我來說是陌生的。 我希望互聯網領域的某個人對這里發生的事情有所了解,或者有什么可以為我提供一些有關可能發生的變化(顯然是一夜之間)或問題可能是什么的線索。

這是完整的提琴手截圖,為安全起見,刪除了URL和文件名以及文件內容。 必須刪除這些項目,因為它是Marine Corp.的應用程序和數據。

GET http://removed_for_security/Reports/filename.csv HTTP/1.1
Accept: */*
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; MDDC; InfoPath    .3)
Accept-Encoding: gzip, deflate
Host: sp2010dev
DNT: 1
Connection: Keep-Alive
Cookie: WSS_KeepSessionAuthenticated={cbef9658-700b-421b-87d5-08fbdc520faf}


HTTP/1.1 200 OK
Cache-Control: private,max-age=0
Content-Length: 27739
Content-Type: application/octet-stream
Expires: Sun, 28 Jul 2013 19:48:33 GMT
Last-Modified: Mon, 12 Aug 2013 19:48:33 GMT
ETag: "{AE0131B1-3C1D-4E24-BB97-D4D0EB8C69F2},30"
Server: Microsoft-IIS/7.5
SPRequestGuid: a39fa60c-5b8c-4b8c-bb8c-bc1f72ab0351
Set-Cookie: WSS_KeepSessionAuthenticated={cbef9658-700b-421b-87d5-08fbdc520faf}; path=/
X-SharePointHealthScore: 0
ResourceTag: rt:AE0131B1-3C1D-4E24-BB97-D4D0EB8C69F2@00000000030
X-Content-Type-Options: nosniff
Content-Disposition: attachment; filename=filename.csv
X-Download-Options: noopen
Public-Extension: http://schemas.microsoft.com/repl-2
Set-Cookie: WSS_KeepSessionAuthenticated={cbef9658-700b-421b-87d5-08fbdc520faf}; path=/
X-Powered-By: ASP.NET
MicrosoftSharePointTeamServices: 14.0.0.6029
Date: Mon, 12 Aug 2013 19:48:32 GMT

file_contents

提前致謝。

您正在使用哪個版本的IE? 您究竟如何生成CSV文件?

問題聽起來像這樣: http : //blogs.msdn.com/b/ieinternals/archive/2012/07/16/content-length-and-transfer-encoding-validation-in-ie10-download-manager-couldnt -被下載重試cancel.aspx

您也可以將Content-Type更改為適當的類型(“ text / csv”),以消除MIME嗅探的可能性。

您可以收集並共享失敗場景的Fiddler捕獲嗎?

因此,顯然,IE安全(驚奇)存在阻止下載的問題。 我通過以下方法來解決此問題:轉到“ Internet Options > Security > Local Intranet > Sites > Advanced然后添加承載SP站點的域。 為了解決IE將“ .csv”更改為“ _csv”的問題,我在IIS管理器中更改了該擴展名的MIME類型。 所以現在一切正常

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM