我有一個帶有Web API的ASP.NET MVC 4應用程序。它運作良好。但一個問題是,IE瀏覽器無法從網頁api下載文件,而Chrome和Firefox可以。瀏覽器說可以從Firefox和Chrome下載文件,但不在IE中
"Unable to open this internet site. The requested site is either unavailable or cannot be found."
根據IE 8 and client-side caching,它看起來像no-cache設置導致問題。所以我想在該下載中設置私有緩存。但在MVC 4中,我發現HttpResponseMessage中沒有屬性「Cache」,也沒有設置私有緩存的方法。任何人都可以展示如何做到這一點?
更新1:根據我的調試,它不是緩存,而是在下面的代碼中的'ContentDisposition'。
HttpResponseMessage response = new HttpResponseMessage();
response.StatusCode = HttpStatusCode.OK;
response.Content = new StreamContent(result);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.ms-excel");
// response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
// {
// FileName = "PY75.xls"
// };
return response;
如果我評論像上面,IE可以下載使用ID作爲其默認的文件名的文件,但它不能像上述在取消時,上述的內容。任何想法如何解決這個問題?爲什麼IE無法識別內容處置標題?
更新2:升級IE 9後,內容配置終於可以正常工作,並且可以從web api下載。
IE9和IE10是否識別「content-disposition」標頭? –