1. 程式人生 > 其它 >如何解決Asp.Net Core 3.1上傳檔案出現跨域

如何解決Asp.Net Core 3.1上傳檔案出現跨域

這個問題挺奇怪的,明明就是檔案過大的問題,卻出現了跨域的錯誤,搞不懂,有了解的大佬請指教。

但問題還是解決了,其實就是Nginx預設上傳大小限制為1M,如果超出了,則出現跨域的錯誤

一、自定義Nginx上傳檔案大小限制

那麼如何自定義Nginx上傳大小限制呢?其實在Nginx的config檔案中,設定下client_max_body_size就好了,如下:

 server {
        listen 443 ssl;
        server_name www.baidu.com;
        client_max_body_size 100m;//設定一下這裡就好了,100m為自己想限制的大小
}

當然,除了Nginx之外,還要檢查以下幾個地方的限制大小

二、自定義Asp.Net Core Kestrel的上傳檔案大小限制

在Program.cs中,配置以下程式碼:

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .UseServiceProviderFactory(new AutofacServiceProviderFactory())
                .ConfigureWebHostDefaults(webBuilder 
=> {
            //配置以下程式碼即可 webBuilder.ConfigureKestrel((context, options)
=> { options.Limits.MaxRequestBodySize = 5242880 * 20;//100MB }); webBuilder.UseStartup<Startup>(); });

三、自定義IIS的上傳檔案大小限制

(1)可以手動在專案根目錄下的web.config檔案中的configuration節點下增加以下節點

<system.webServer>
        <security>
            <requestFiltering>
                <requestLimits maxAllowedContentLength="104857600" />
            </requestFiltering>
        </security>
    </system.webServer>

(2)也可以通過IIS直接進行配置

四、自定義應用程式上傳檔案大小限制

services.Configure<FormOptions>(x => {//應用程式設定,超出設定範圍會報InvalidDataException異常資訊
                x.MultipartBodyLengthLimit = int.MaxValue;
                x.ValueLengthLimit = int.MaxValue;
            });

好了,以上就是Asp.Net Core 3.1上傳檔案出現跨域時的解決辦法。當然,如果您的程式真的就是跨域了,那就老老實實先配置好跨域吧^_^。

喜歡本文章的朋友,歡迎關注公眾號【程式設計師在職場】支援一下作者。

作者:程式設計師在職場 來源:http://www.cnblogs.com/w821759016/ 宣告:本部落格原創文字只代表本人工作中在某一時間內總結的觀點或結論,與本人所在單位沒有直接利益關係。非商業,未授權,貼子請以現狀保留,轉載時必須保留此段宣告,且在文章頁面明顯位置給出原文連線。