ASP.Net Core MVC+Ajax 跨域

时间:2023-03-09 18:50:12
ASP.Net Core MVC+Ajax 跨域

要求

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 跨域