成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > 基于CORS實(shí)現(xiàn)WebApi Ajax 跨域請(qǐng)求解決方法

基于CORS實(shí)現(xiàn)WebApi Ajax 跨域請(qǐng)求解決方法

熱門(mén)標(biāo)簽:中國(guó)地圖標(biāo)注不明確情況介紹表 立陶宛地圖標(biāo)注 地圖標(biāo)注推銷(xiāo)坑人 東平縣地圖標(biāo)注app 怎樣在地圖標(biāo)注文字 大眾點(diǎn)評(píng)400電話怎么申請(qǐng) 河間市地圖標(biāo)注app 電銷(xiāo)機(jī)器人 長(zhǎng)春 上海企業(yè)外呼系統(tǒng)價(jià)錢(qián)

概述

ASP.NET Web API 的好用使用過(guò)的都知道,沒(méi)有復(fù)雜的配置文件,一個(gè)簡(jiǎn)單的ApiController加上需要的Action就能工作。但是在使用API的時(shí)候總會(huì)遇到跨域請(qǐng)求的問(wèn)題,特別各種APP萬(wàn)花齊放的今天,API的跨域請(qǐng)求是不能避免的。

在默認(rèn)情況下,為了防止CSRF跨站的偽造攻擊(或者是 javascript的同源策略(Same-Origin Policy)),一個(gè)網(wǎng)頁(yè)從另外一個(gè)域獲取數(shù)據(jù)時(shí)就會(huì)收到限制。有一些方法可以突破這個(gè)限制,那就是大家熟知的JSONP, 當(dāng)然這只是眾多解決方法中一種,由于JSONP只支持GET的請(qǐng)求,如今的復(fù)雜業(yè)務(wù)中已經(jīng)不能滿足需求。而CORS(Cross Origin Resource Sharing https://www.w3.org/wiki/CORS)跨域資源共享,是一種新的header規(guī)范,可以讓服務(wù)器端放松跨域的限制,可以根據(jù)header來(lái)切換限制或者不限制跨域請(qǐng)求。重要的是它支持所有http請(qǐng)求方式。

問(wèn)題

XMLHttpRequest 跨域 POST或GET請(qǐng)求 ,請(qǐng)求方式會(huì)自動(dòng)變成OPTIONS的問(wèn)題。

由于CORS(cross origin resource share)規(guī)范的存在,瀏覽器會(huì)首先發(fā)送一次options嗅探,同時(shí)header帶上origin,判斷是否有跨域請(qǐng)求權(quán)限,服務(wù)器響應(yīng)access control allow origin的值,供瀏覽器與origin匹配,如果匹配則正式發(fā)送post請(qǐng)求,即便是服務(wù)器允許程序跨域訪問(wèn),若不支持 options 請(qǐng)求,請(qǐng)求也會(huì)死掉。

原因

瀏覽器為了安全起見(jiàn),會(huì)Preflighted Request的透明服務(wù)器驗(yàn)證機(jī)制支持開(kāi)發(fā)人員使用自定義的頭部、GET或POST之外的方法,以及不同類(lèi)型的主題內(nèi)容,也就是會(huì)先發(fā)送一個(gè) options 請(qǐng)求,
問(wèn)問(wèn)服務(wù)器是否會(huì)正確(允許)請(qǐng)求,確保請(qǐng)求發(fā)送是安全的。

出現(xiàn) OPTIONS 的情況一般為:

1、非GET 、POST請(qǐng)求

2、POST請(qǐng)求的content-type不是常規(guī)的三個(gè):application/x- www-form-urlencoded(使用 HTTP 的 POST 方法提交的表單)、multipart/form-data(同上,但主要用于表單提交時(shí)伴隨文件上傳的場(chǎng)合)、text/plain(純文本) 

3、POST請(qǐng)求的payload為text/html 

4、設(shè)置自定義頭部

OPTIONS請(qǐng)求頭部中會(huì)包含以下頭部:Origin、Access-Control-Request-Method、Access-Control-Request-Headers,發(fā)送這個(gè)請(qǐng)求后,服務(wù)器可以設(shè)置如下頭部與瀏覽器溝通來(lái)判斷是否允許這個(gè)請(qǐng)求。
Access-Control-Allow-Origin、Access-Control-Allow-Method、Access-Control-Allow-Headers

解決方法

此方法功能強(qiáng)大,可以解決ASP.NET Web API復(fù)雜跨域請(qǐng)求,攜帶復(fù)雜頭部信息,正文內(nèi)容和授權(quán)驗(yàn)證信息

方法一

public class CrosHandler:DelegatingHandler
{
 private const string Origin = "Origin";
 private const string AccessControlRequestMethod = "Access-Control-Request-Method";
 private const string AccessControlRequestHeaders = "Access-Control-Request-Headers";
 private const string AccessControlAllowOrign = "Access-Control-Allow-Origin";
 private const string AccessControlAllowMethods = "Access-Control-Allow-Methods";
 private const string AccessControlAllowHeaders = "Access-Control-Allow-Headers";
 private const string AccessControlAllowCredentials = "Access-Control-Allow-Credentials";
 protected override TaskHttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
 {
  bool isCrosRequest = request.Headers.Contains(Origin);
  bool isPrefilightRequest = request.Method == HttpMethod.Options;
  if (isCrosRequest)
  {
   TaskHttpResponseMessage> taskResult = null;
   if (isPrefilightRequest)
   {
    taskResult = Task.Factory.StartNewHttpResponseMessage>(() =>
    {
     HttpResponseMessage response = new HttpResponseMessage(System.Net.HttpStatusCode.OK);
     response.Headers.Add(AccessControlAllowOrign,
      request.Headers.GetValues(Origin).FirstOrDefault());
     string method = request.Headers.GetValues(AccessControlRequestMethod).FirstOrDefault();
     if (method != null)
     {
      response.Headers.Add(AccessControlAllowMethods, method);
     }
     string headers = string.Join(", ", request.Headers.GetValues(AccessControlRequestHeaders));
     if (!string.IsNullOrWhiteSpace(headers))
     {
      response.Headers.Add(AccessControlAllowHeaders, headers);
     }
     response.Headers.Add(AccessControlAllowCredentials, "true");
     return response;
    }, cancellationToken);
   }
   else
   {
    taskResult = base.SendAsync(request, cancellationToken).ContinueWithHttpResponseMessage>(t =>
    {
     var response = t.Result;
     response.Headers.Add(AccessControlAllowOrign,
      request.Headers.GetValues(Origin).FirstOrDefault());
     response.Headers.Add(AccessControlAllowCredentials, "true");
     return response;
    });
   }
   return taskResult;
  }
  return base.SendAsync(request, cancellationToken);
 }
}

使用方式,在Global.asax文件添加

protected void Application_Start()
{
 IOCConfig.RegisterAll();
 AreaRegistration.RegisterAllAreas();
 WebApiConfig.Register(GlobalConfiguration.Configuration);
 FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
 RouteConfig.RegisterRoutes(RouteTable.Routes);
 BundleConfig.RegisterBundles(BundleTable.Bundles);
 GlobalConfiguration.Configuration.MessageHandlers.Add(new CrosHandler());
}

方法二

配置文件中添加如下配置,此方法簡(jiǎn)單,應(yīng)對(duì)簡(jiǎn)單的跨域請(qǐ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="GET, POST,OPTIONS" />
  /customHeaders>
 /httpProtocol>
system.webServer>

總結(jié)

以上所述是小編給大家介紹的基于CORS實(shí)現(xiàn)WebApi Ajax 跨域請(qǐng)求解決方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • Apache中配置支持CORS(跨域資源共享)實(shí)例
  • 跨域資源共享 CORS 詳解
  • 淺析jsopn跨域請(qǐng)求原理及cors(跨域資源共享)的完美解決方法
  • JS跨域解決方案之使用CORS實(shí)現(xiàn)跨域
  • js實(shí)現(xiàn)跨域的幾種方法匯總(圖片ping、JSONP和CORS)
  • 跨域請(qǐng)求的完美解決方法(JSONP, CORS)
  • 跨域請(qǐng)求兩種方法 jsonp和cors的實(shí)現(xiàn)
  • 你可能不知道的CORS跨域資源共享

標(biāo)簽:四川 益陽(yáng) 遼寧 銅川 營(yíng)口 本溪 內(nèi)江 玉樹(shù)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《基于CORS實(shí)現(xiàn)WebApi Ajax 跨域請(qǐng)求解決方法》,本文關(guān)鍵詞  基于,CORS,實(shí)現(xiàn),WebApi,Ajax,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《基于CORS實(shí)現(xiàn)WebApi Ajax 跨域請(qǐng)求解決方法》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于基于CORS實(shí)現(xiàn)WebApi Ajax 跨域請(qǐng)求解決方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    亚洲精品欧美极品| 色偷偷噜噜噜亚洲男人| 亚洲欧美日韩国产综合在线| 一级二级在线观看| 69久久夜色精品国产69乱青草| 潘金莲一级淫片aaaaa免费看| 国产乱码精品一区二区三区不卡| 国产高清免费视频| 男人的天堂久久| 人与动性xxxxx免费视频| 欧美一级免费在线观看| 日本人妻一区二区三区| 久久成人在线视频| 97caopor国产在线视频| 国产亚洲精品自拍| h版电影在线播放视频网址| 久热av在线| 奇米影视7777精品一区二区| 丝袜美腿亚洲一区| 免费国产高清| 欧美激情久久久久久久| 国产交换配乱淫视频免费| 999久久精品| 国产性生活毛片| 最近免费中文字幕中文高清百度| 精品人妻无码一区| 亚洲精品av在线| 欧美日韩国产乱码电影| 三级av在线播放| 日韩成人av免费| www.久久国产| 国产成人拍精品视频午夜网站| 人人超在线公开视频| 久久精品二区亚洲w码| 亚洲涩涩在线观看| 黄色av网站在线免费观看| 超碰免费公开在线| 欧美一区二区三区视频| 国产精品女主播一区二区三区| 秋霞无码一区二区| 88xx成人免费观看视频库| av一本久道久久波多野结衣| 69日本xxxxxxxxx49| 高清色视频在线观看| 成人三级av在线| 亚洲高清免费观看高清完整版在线观看| 国产农村妇女精品久久| 国产精品**亚洲精品| 免费高清在线观看电视| 成人av在线播放观看| 亚洲欧美网站在线观看| 久久久久久久久久久久久国产精品| 国产精品中文字幕在线| 亚洲第一视频网站| av激情亚洲男人天堂| 免费吸乳羞羞网站视频| 免费精品视频最新在线| 亚洲精品一级二级三级| 精品一区二区三区免费毛片爱| 91国产一区| 特黄视频免费观看| 亚洲男同1069视频| 欧美午夜精品一区二区三区电影| 99久久er热在这里只有精品15| 先锋影音资源999| 精品久久久久久久久久久| 精品国产免费人成电影在线观看四季| 欧美精品电影免费在线观看| 欧美国产第一页| 蜜桃福利入口| 黑森林福利视频导航| 国产三级电影在线| 情事1991在线| 97精品国产99久久久久久免费| 美女视频一区免费观看| 精品国产成人亚洲午夜福利| 欧美电影一区二区三区| 国产亚洲色婷婷久久99精品91| 91高清视频免费| 日日碰狠狠丁香久燥| 人妻与黑人一区二区三区| 伊人久久久大香线蕉综合直播| 超碰97在线资源| 四虎影院观看视频在线观看| 精品福利影院| 激情小视频在线观看| 亚洲成人资源| 国产欧美日韩综合一区在线播放| 亚洲欧美另类在线观看| 国产伦精品一区二区三区免费迷| 在线免费a视频| 亚洲视频综合网| 在线观影网站| 国产综合精品一区二区三区| 精品国产亚洲日本| 日韩三级影视| 国产午夜亚洲精品羞羞网站| 五月激情丁香网| 欧美aa在线观看| 天堂v视频永久在线播放| 国产精品久久久久久久久久新婚| 中文字幕亚洲影视| 欧美色综合一区二区三区| www.国产精品.com| 日韩人妻精品一区二区三区| 日韩免费av片在线观看| 亚洲精品tv久久久久久久久| 国产真实乱对白精彩久久| 亚洲承认在线| 亚洲一区二区色| 欧美国产日韩精品| 91精品国产乱码在线观看| 日本三级日本三级日本三级极| 日韩av超清在线观看| 天堂av一区二区三区| 亚洲精品国产无码| 久操手机在线视频| 日韩av黄色网址| 91沈先生在线观看| 欧美精品一区二区三区中文字幕| 性欧美13一14内谢| 国产香蕉视频在线观看| 婷婷丁香久久| 在线免费黄色网| 国产美女三级无套内谢| 国产99久久精品一区二区300| 在线观看中文字幕的网站| 久久偷看各类女兵18女厕嘘嘘| 欧美激情福利视频在线观看免费| 欧美另类极品videosbest视| 91中文字幕在线播放| 久久国产精品波多野结衣| 美女视频黄免费的亚洲男人天堂| www.日本在线播放| 九色网友自拍视频手机在线| 91高清免费视频| 亚洲网站在线播放| 国产精品探花一区二区在线观看| 日韩av网址在线观看| 五月天网站亚洲| 精品视频一区二区| 午夜无码国产理论在线| 黑森林精品导航| 亚洲高清不卡| caoporn国产精品免费公开| 国产乱人伦精品一区二区在线观看| 国产嫩草影院久久久久| av电影在线观看完整版一区二区| 欧美日韩国产欧美日美国产精品| 中文幕一区二区三区久久蜜桃| 亚洲国产精品久久久久| 女子免费在线观看视频www| 久久综合久久综合这里只有精品| 91精品久久久久久久| 欧美性色黄大片| 日韩午夜av电影| 亚洲男人第一网站| 国产精品激情电影| 狠狠久久综合婷婷不卡| 精品久久国产97色综合| 黑人巨大精品欧美一区二区一视频| 日本不卡的三区四区五区| av成人综合网| 一区免费视频| 7777精品伊人久久久大香线蕉| 国产成人麻豆精品午夜在线| 欧美日韩成人一区二区三区| 亚洲美女自拍视频| 免费成人在线视频网站| 中文字幕高清在线免费播放| 亚州av日韩av| 91免费视频国产| 国产不卡一区二区在线观看| 国产大陆a不卡| 无码日韩人妻精品久久蜜桃| 久久久久亚洲精品中文字幕| 免费在线观看av的网站| 精品日韩av| 亚洲女同同性videoxma| 菠萝蜜视频网址| 成人女保姆的销魂服务| 亚洲一区二区三区影院| 无码人妻精品一区二区| 国产又黄又爽视频| 牛牛精品视频在线| av在线无限看| 亚洲精品99| 日本不卡免费播放| 亚洲成人久久精品| 岛国片在线看| 精品视频二区三区| 亚洲色大成网站www久久九九| 懂色av粉嫩av蜜乳av| 精品一区二区国语对白| av观看成片免费网站| 最猛黑人系列在线播放| 九九视频直播综合网| 日韩欧美中文字幕一区二区三区| 亚洲成人精品久久久| 国产乱国产乱300精品| 激情在线小视频| 欧美性aaa| 狠狠操五月天| 日本在线一区二区| 亚洲制服丝袜av| 天堂а√在线中文在线鲁大师| 亚洲人成啪啪网站| 国内精品久久久久久久久久久| 岛国成人毛片| 福利网站av| 99久久精品国产毛片| aaaaa级片| 美女视频一区在线观看| 亚洲大片免费观看| 亚洲黄色影片| 国产精品99久久久久久白浆小说| 久久精品亚洲天堂| 福利片免费在线观看| 99精品电影| 最新地址在线观看| 性折磨bdsm欧美激情另类| 成人av一区二区三区在线观看| 国产亚洲人成网站在线观看| 欧美一区在线视频| 社区色欧美激情 | 日本一二三不卡| 色拍拍在线精品视频8848| 国产原创视频在线观看| 亚洲欧美欧美一区二区三区| 91免费版看片| 久久99国产精品久久久久久久久| 色婷婷精品久久二区二区蜜臂av| 国产性xxxx| 国产精品视频一区二区三区经| 1区2区在线观看| 久久精品无码中文字幕| 国产精品亲子伦对白| 天天操天天射天天| 海角社区69精品视频| 色一情一交一乱一区二区三区| 国产探花一区在线观看| 中文字幕在线亚洲三区| 亚洲丝袜自拍清纯另类| 欧美一级在线观看| 狠狠久久伊人中文字幕| 午夜剧场在线免费观看| 日本xxxwww免费视频| 加勒比一区二区| 91成人抖音| 99久久久无码国产精品性| 中文字幕久久亚洲| 麻豆精品国产免费| 亚洲精品免费在线观看视频| 日韩黄色碟片| 99久久夜色精品国产亚洲1000部| 欧美一区二区三区啪啪| 新天天拍日日拍狠狠拍| 一本加勒比北条麻妃| 91国偷自产一区二区三区的观看方式| 成人福利一区二区| 亚洲精品国产suv| 91在线播放视频| 伊人影院在线观看视频| 国产精品免费无遮挡| 午夜在线视频观看| 国产精品一区二区久久精品| 日韩亚洲一区中文字幕| 国产精品扒开腿做爽爽爽a片唱戏| 国产片侵犯亲女视频播放| 91精品久久久久久久久| 中文字幕乱码在线观看| 日韩欧美美女在线观看| 成人免费xx| **亚洲第一综合导航网站| 综合在线视频| 涩爱av色老久久精品偷偷鲁| 中文字幕中文字幕中文字幕亚洲无线| 粉嫩一区二区三区| 欧洲精品99毛片免费高清观看| 欧美日韩久久一区| 亚洲欧美电影一区二区| 秋霞午夜鲁丝一区二区| 白嫩少妇丰满一区二区| 精品在线小视频| 欧美理论电影| 国产www视频| 亚洲欧美日韩天堂一区二区| 国产乱国产乱老熟300部视频| 久久精品99久久| 天天干天天操天天爽| 一区二区三区波多野结衣在线观看| 欧美日韩在线第一页| 精品国产乱码久久久久久天美| 成人久久18免费网站图片| 色婷婷av一区| 亚洲综合国产激情另类一区| 日韩欧美在线综合| 亚洲福利精品在线| 三级在线视频| 国产欧美精品国产国产专区| 黄色片在线观看网站| 嫩草在线播放| 在线观看日韩| 日本中文字幕不卡免费| 高清视频在线观看一区| 精品国产一区久久| 国产在视频一区二区三区吞精| 亚洲女性喷水在线观看一区| |精品福利一区二区三区| 国产一区二区三区站长工具| 亚洲黑丝一区二区| 国产尤物视频在线观看| 日韩黄色影视| aaa日本高清在线播放免费观看| 欧美日韩一区二区精品| 怡红院一区二区三区| 欧美日韩亚州综合| 成年人在线看| 日韩一区二区三区高清在线观看| 在线国产精品网| 一区二区在线免费| 欧美美女在线| 992tv在线观看免费进| 国产白丝网站精品污在线入口| 日本男人天堂网| 777永久免费网站国产| 日韩特级毛片| 一本在线高清不卡dvd|