如何解决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上传文件出现跨域时的解决办法。当然,如果您的程序真的就是跨域了,那就老老实实先配置好跨域吧^_^。

喜欢本文章的朋友,欢迎关注公众号【程序员在职场】支持一下作者。

声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。非商业,未授权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。
原文地址:https://www.cnblogs.com/w821759016/p/15136529.html