亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2018年06月28日 09:12:14   作者:GetPower  
這篇文章主要介紹了ASP.NET MVC中設(shè)置跨域訪(fǎng)問(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)題??蛻?hù)端(網(wǎng)頁(yè))和后臺(tái)編程都可以有效解決這個(gè)問(wèn)題。客戶(hù)端可以通過(guò)JSONP來(lái)完成跨域訪(fǎng)問(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)站的域名地址的話(huà),這次請(qǐng)求被視為允許。其中Access-Control-Allow-Origin的值為*時(shí)表示允許所有網(wǎng)站的跨域請(qǐng)求。

本文主要探索如何在后臺(tái)代碼中設(shè)置允許跨域訪(fǎng)問(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è)置跨域訪(fǎng)問(wèn)問(wèn)題,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評(píng)論