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

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

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

1、什么是跨域請求

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

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

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過濾器

不論webapi還是mvc的action,我們都可以重寫ActionFilterAttribute過濾器的OnException方法來在action執(zhí)行完成之后,為http響應(yīng)添加header頭;OnException方法意為在action執(zhí)行完成之后進(jìn)行的操作。這個過濾器可以添加在action或者controller上,但是這樣就要為每一個action或者controller打上這個過濾器,這里將我們重寫的action過濾器添加在了全局的過濾器中,這樣,每一個action在執(zhí)行完成之后都會觸發(fā)這個過濾器,這里以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 配置和服務(wù)
      // 將 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 }
      );
    }
  }

總結(jié)

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

相關(guān)文章

最新評論

修文县| 长宁区| 吉水县| 云和县| 丹巴县| 斗六市| 射阳县| 龙门县| 垫江县| 九龙县| 水城县| 剑阁县| 清镇市| 中方县| 揭阳市| 江门市| 龙南县| 竹山县| 长垣县| 安徽省| 金山区| 哈巴河县| 铜陵市| 密山市| 东乌珠穆沁旗| 延吉市| 绥滨县| 拜城县| 普格县| 哈尔滨市| 武川县| 南江县| 亳州市| 深水埗区| 布尔津县| 凤山县| 丽水市| 昭平县| 棋牌| 周口市| 北辰区|