您现在的位置是:网站首页> 编程资料编程资料
ASP.NET MVC中设置跨域访问问题_实用技巧_
2023-05-24
412人已围观
简介 ASP.NET MVC中设置跨域访问问题_实用技巧_
1、什么是跨域请求
js禁止向不是当前域名的网站发起一次ajax请求,即使成功respone了数据,但是你的js仍然会报错。这是JS的同源策略限制,JS控制的并不是我们网站编程出现了问题。客户端(网页)和后台编程都可以有效解决这个问题。客户端可以通过JSONP来完成跨域访问;在ES6中为了解除同源策略问题,想出一个办法:当被请求网站为响应头respone添加了一个名为Access-Control-Allow-Origin的header,设置其值等于发起请求网站的域名地址的话,这次请求被视为允许。其中Access-Control-Allow-Origin的值为*时表示允许所有网站的跨域请求。
本文主要探索如何在后台代码中设置允许跨域访问。
2、在action中添加代码
HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Origin", "*");3、在webconfig添加应用程序配置:
4、添加action过滤器
不论webapi还是mvc的action,我们都可以重写ActionFilterAttribute过滤器的OnException方法来在action执行完成之后,为http响应添加header头;OnException方法意为在action执行完成之后进行的操作。这个过滤器可以添加在action或者controller上,但是这样就要为每一个action或者controller打上这个过滤器,这里将我们重写的action过滤器添加在了全局的过滤器中,这样,每一个action在执行完成之后都会触发这个过滤器,这里以webapi为例。新建类:
////// 跨域 /// public class Cores:ActionFilterAttribute { public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext) { base.OnActionExecuted(actionExecutedContext); actionExecutedContext.Response.Headers.Add("Access-Control-Allow-Origin","*"); } }
在webapiconfig中添加。
public static class WebApiConfig { public static void Register(HttpConfiguration config) { // Web API 配置和服务 // 将 Web API 配置为仅使用不记名令牌身份验证。 config.SuppressDefaultHostAuthentication(); config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType)); // Web API 路由 config.MapHttpAttributeRoutes(); config.Filters.Add(new Cores()); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); } }总结
以上所述是小编给大家介绍的ASP.NET MVC中设置跨域访问问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
相关内容
- .NET中JSON的序列化和反序列化的几种方式_实用技巧_
- 详解CentOS 7.4下如何部署Asp.Net Core结合consul_实用技巧_
- .net core 读取本地指定目录下的文件的实例代码_实用技巧_
- .NET Core中使用HttpClient的正确姿势_实用技巧_
- Asp.Net MVC记住用户登录信息下次直接登录功能_实用技巧_
- .Net Core中使用Quartz.Net实践记录_实用技巧_
- .Net Core中间件之静态文件(StaticFiles)示例详解_实用技巧_
- ASP.NET MVC实现批量文件上传_实用技巧_
- ASP.NET MVC Webuploader实现上传功能_实用技巧_
- Asp.net Core中如何使用中间件来管理websocket_实用技巧_
