最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ASP.NET MVC中設(shè)置跨域訪問(wèn)問(wèn)題

 更新時(shí)間:2018年06月28日 09:12:14   作者:GetPower  
這篇文章主要介紹了ASP.NET MVC中設(shè)置跨域訪問(wèn)問(wèn)題,需要的朋友可以參考下

1、什么是跨域請(qǐng)求

js禁止向不是當(dāng)前域名的網(wǎng)站發(fā)起一次ajax請(qǐng)求,即使成功respone了數(shù)據(jù),但是你的js仍然會(huì)報(bào)錯(cuò)。這是JS的同源策略限制,JS控制的并不是我們網(wǎng)站編程出現(xiàn)了問(wèn)題??蛻舳耍ňW(wǎng)頁(yè))和后臺(tái)編程都可以有效解決這個(gè)問(wèn)題。客戶端可以通過(guò)JSONP來(lái)完成跨域訪問(wèn);在ES6中為了解除同源策略問(wèn)題,想出一個(gè)辦法:當(dāng)被請(qǐng)求網(wǎng)站為響應(yīng)頭respone添加了一個(gè)名為Access-Control-Allow-Origin的header,設(shè)置其值等于發(fā)起請(qǐng)求網(wǎng)站的域名地址的話,這次請(qǐng)求被視為允許。其中Access-Control-Allow-Origin的值為*時(shí)表示允許所有網(wǎng)站的跨域請(qǐng)求。

本文主要探索如何在后臺(tái)代碼中設(shè)置允許跨域訪問(wèn)。

2、在action中添加代碼

HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Origin", "*");

3、在webconfig添加應(yīng)用程序配置:

<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過(guò)濾器

不論webapi還是mvc的action,我們都可以重寫(xiě)ActionFilterAttribute過(guò)濾器的OnException方法來(lái)在action執(zhí)行完成之后,為http響應(yīng)添加header頭;OnException方法意為在action執(zhí)行完成之后進(jìn)行的操作。這個(gè)過(guò)濾器可以添加在action或者controller上,但是這樣就要為每一個(gè)action或者controller打上這個(gè)過(guò)濾器,這里將我們重寫(xiě)的action過(guò)濾器添加在了全局的過(guò)濾器中,這樣,每一個(gè)action在執(zhí)行完成之后都會(huì)觸發(fā)這個(gè)過(guò)濾器,這里以webapi為例。新建類(lèi):

  /// <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 配置和服務(wù)
      // 將 Web API 配置為僅使用不記名令牌身份驗(yàn)證。
      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 }
      );
    }
  }

總結(jié)

以上所述是小編給大家介紹的ASP.NET MVC中設(shè)置跨域訪問(wèn)問(wèn)題,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評(píng)論

林口县| 米林县| 定远县| 鲁甸县| 平远县| 香格里拉县| 金门县| 沙湾县| 佛坪县| 夏津县| 文安县| 咸丰县| 昆山市| 稷山县| 洛浦县| 驻马店市| 平定县| 和硕县| 龙游县| 桦川县| 察隅县| 巫山县| 玉溪市| 分宜县| 桑植县| 西充县| 吉水县| 武宁县| 马龙县| 阿鲁科尔沁旗| 瑞金市| 隆安县| 曲麻莱县| 上高县| 四川省| 海城市| 盖州市| 偏关县| 泸溪县| 舟山市| 故城县|