C# ABP 允许跨域请求
来源:互联网 发布:杭州市网络作家协会 编辑:程序博客网 时间:2024/06/05 01:09
首先配置Web Api:
1. 在Web API项目下,安装包
Install-Package Microsoft.AspNet.WebApi.Cors
2. 然后在 WebApiModule 的方法Initialize中,添加下面代码:(代码最好在ConfigureSwaggerUi的上面)
//设置跨域 var cors = new EnableCorsAttribute("*", "*", "*"); cors.SupportsCredentials = true; GlobalConfiguration.Configuration.EnableCors(cors);
上面配置了Web Api的跨域,然后我们想要在Web MVC中也支持跨域。下面我们给出登录模块支持跨域的例子。
然后配置Web MVC项目,让登录支持跨域:
1.我们创建一个Attribute类,叫做AcceessOriginalAttribute,如下:
using System;using System.Collections.Generic;using System.Configuration;using System.Linq;using System.Web;using System.Web.Mvc;namespace MagicQCes.Web.Filters{ public class AcceessOriginalAttribute : ActionFilterAttribute, IExceptionFilter { public void InternalExuteAccessControle(HttpResponseBase response, HttpRequestBase request) { var header = response.Headers; var requestHeader = request.Headers; header.Set("Access-Control-Allow-Origin", requestHeader["Origin"] ?? "http://" + requestHeader["Host"]); header.Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); header.Set("Access-Control-Max-Age", "3600"); header.Set("Access-Control-Allow-Headers", "*"); header.Set("Access-Control-Allow-Credentials", "true"); } public override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); } public override void OnActionExecuted(ActionExecutedContext filterContext) { InternalExuteAccessControle(filterContext.HttpContext.Response, filterContext.HttpContext.Request); base.OnActionExecuted(filterContext); } public override void OnResultExecuting(ResultExecutingContext filterContext) { base.OnResultExecuting(filterContext); } public override void OnResultExecuted(ResultExecutedContext filterContext) { base.OnResultExecuted(filterContext); } public void OnException(ExceptionContext filterContext) { filterContext.Result = new JsonResult() { Data = new { Succeed = 0, Message = filterContext.Exception.Message }, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; filterContext.ExceptionHandled = true; } }}
2.然后,我们在AccountController中,的Login方法中,添加上面属性,如下:
[AcceessOriginal] public async Task<JsonResult> Login(string usernameOrEmailAddress, string Password)
这样,登录也支持跨域了。
0 0
- C# ABP 允许跨域请求
- nginx允许所有二级域名跨域请求
- ASP.NET 允许跨域请求
- java允许请求跨域访问
- django允许跨域请求配置
- 跨域请求不被允许
- 设置apache允许跨域 ajax请求
- Spring-Boot允许跨域请求
- Spring Boot 允许跨域请求、自定义请求头
- PHP允许AJAX跨域请求的两种方法
- Firefox/Chrome/IE Ajax 怎样设置允许跨域请求
- Tomcat服务器允许所有JSON进行跨域请求(不使用JSONP)
- django 允许post请求
- 只允许ajax请求
- iOS 允许HTTP请求
- 允许跨域访问
- tomcat允许跨域
- 通过C#后台实现跨域请求
- 使用递归求出0,1,1,2,3,5,8,13,21,34.........数列的第20项为多少
- Java-Swing-单选按钮
- ASP--Active Server Pages Summary
- VHDX安装双系统
- table可编辑表格写法(简单)
- C# ABP 允许跨域请求
- QA价值体现
- MarkDown MarkDown语法介绍
- 匿名函数2
- google git-repo 命令参考(Repo command reference)
- IOS coredata基础
- Unity发布WebGl逐行读取本地文本文件
- volatile变量小结
- React Native学习六- ActivityIndicator