ASP.Net Core MVC+Ajax 跨域

时间:2022-08-29 12:18:44

要求

C端:用户端(http://www.b.com)

A端:管理端(http://admin.b.com)

问题:A端上传图片到C端指定文件夹内保存,供C端使用。

方案

C端从nuget引入Microsoft.AspNetCore.Mvc.Cors

Install-Package Microsoft.AspNetCore.Mvc.Cors

 

② Startup文件中的ConfigureServices方法添加

 var sites = Configuration.Get<ConfigModel>().AdminSite.Split(",");
//跨域,让管理端上传图片文件
services.AddCors(option => option.AddPolicy("adminCors",
                policy => policy.WithOrigins(sites).AllowAnyHeader().AllowAnyMethod().AllowCredentials()));
sites是string [],允许的站点,这里的sites=["http://admin.b.com"];

③ Configure方法内添加

app.UseCors("adminCors");

 

④ 添加FileController.cs,并完成业务逻辑

ASP.Net Core MVC+Ajax 跨域

ASP.Net Core MVC+Ajax 跨域

 

A端Ajax调用

            $.ajax({
                url: 'http://www.b.com/File/Upload',
                type: 'POST',
                data: data,
                processData: false,
                contentType: false,
                crossDomain: true,
          //带上cookie xhrFields: { withCredentials:
true }, success: function (res) { //一些逻辑 }, error: function (err) { //一些逻辑 } });

最终完成:

C端的文件目录

ASP.Net Core MVC+Ajax 跨域