歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

ASP.NET 使用js插件出現上傳較大文件失敗的解決方法(ajaxfileupload.js第一彈)

在寫這篇的時候本來想把標題直接寫成報錯的提示,如下:

“SecurityError:Blocked a frame with origin "http://localhost:55080" from accessing a cross-origin frame.”

但是有點長,會顯示不全,就想還是換一下吧,想了一下

“ASP.NET 上傳過大圖片或文件報錯解決辦法”,

然後當我寫完這個題目之後,我覺得這篇文章好像根本沒有寫的必要,估計看完題目就會想到關於web.config配置的方面了。但是想寫的內容真的不是那麼“單純”的,畢竟是花了自己幾個小時去研究的啊~~所以又想了一下,變成了現在的這個題目,就是想和大家分享一下。

那言歸正傳了。

先上一下報錯的提示截圖:

先提示

後提示

是這樣的,在網上下載了一個ajaxfileupload.js插件,用於無刷新上傳圖片使的,然後就按照demo的例子去運行了一下,上傳啊什麼的都OK,但是正好上傳的示例圖片有一個比較大的,4M,5M的樣子,然後上傳就會報上面的錯誤。

單純看我的描述,明顯發現就是圖片較大的原因,可能很快就會想到web.config的配置問題上,但是當我是當局者的時候,就沒有那麼靈光了,因為有提示錯誤,就有去百度一下,結果查到是什麼“跨域調函數”的問題,至此,這個問題我探究的方向已經走偏。

雖然問題提示當中沒有明顯的說出是跟上傳圖片的大小有關系,但是這個問題確實是因為沒有設置上傳文件的大小,而asp.net的默認上傳文件大小是2M

我先把解決方法告訴大家,就是在Web.config的<system.web>中加上下面這段

<httpRuntime maxRequestLength="4096"

    useFullyQualifiedRedirectUrl="true"

    executionTimeout="6000"

    minFreeThreads="8"

    minLocalRequestFreeThreads="4"

    appRequestQueueLimit="100"

    enableVersionHeader="true" />


說明:

如果大家想了解我對整個問題的探究過程,那就繼續往下看,蠻有意思的(其實也因為探究問題最初的跑偏,讓我學習到了相關的更多知識,過程比較惡心,但是結果比較開心。)

話說查那個報錯提示,就是“SecurityError:Blocked a frame with origin "http://localhost:55080" from accessing a cross-origin frame.”這句,然後提到了什麼“跨域調函數”,當時就迷糊了,這是什麼東西啊?然後看到一篇文章是講關於這個的,主要說就是頁面中存在一個iframe,然後iframe中的js代碼與頁面中的js代碼相互調用,在某種情況下就變成了跨域的調用,就會報錯。

查到這裡我就已經有點不耐煩了,因為貌似需要去查看ajaxfileupload.js插件的源代碼了,說實話,看js源碼是我眾多不愛做的事情之一。但是我又是不喜歡遇到問題草草了事的人,所以必須要看一下了。

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-09/106412p2.htm

Copyright © Linux教程網 All Rights Reserved