如何解决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上传文件出现跨域时的解决办法。当然,如果您的程序真的就是跨域了,那就老老实实先配置好跨域吧^_^。
喜欢本文章的朋友,欢迎关注公众号【程序员在职场】支持一下作者。
作者:程序员在职场
声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。非商业,未授权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步