国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET MVC中設置跨域訪問問題

2024-07-10 12:48:46
字體:
來源:轉載
供稿:網友

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添加應用程序配置:

<system.webServer><httpProtocol><customHeaders><add name="Access-Control-Allow-Origin" value="*" /><add name="Access-Control-Allow-Headers" value="Content-Type" /><add name="Access-Control-Allow-Methods" value="*" /></customHeaders></httpProtocol></system.webServer>

4、添加action過濾器

不論webapi還是mvc的action,我們都可以重寫ActionFilterAttribute過濾器的OnException方法來在action執行完成之后,為http響應添加header頭;OnException方法意為在action執行完成之后進行的操作。這個過濾器可以添加在action或者controller上,但是這樣就要為每一個action或者controller打上這個過濾器,這里將我們重寫的action過濾器添加在了全局的過濾器中,這樣,每一個action在執行完成之后都會觸發這個過濾器,這里以webapi為例。新建類:

  /// <summary>  /// 跨域  /// </summary>  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中設置跨域訪問問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對錯新站長站網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 太仆寺旗| 芦溪县| 嘉祥县| 尉氏县| 平和县| 库伦旗| 綦江县| 五寨县| 梁山县| 巴林左旗| 台东市| 塔河县| 延吉市| 清镇市| 乌鲁木齐市| 安多县| 金门县| 兴仁县| 平顺县| 株洲县| 土默特右旗| 南川市| 保山市| 台东市| 德阳市| 广安市| 西昌市| 当雄县| 松桃| 栾川县| 思茅市| 高要市| 郯城县| 泾阳县| 诸暨市| 平武县| 扎兰屯市| 沙雅县| 巴林右旗| 肥西县| 绍兴市|