C# webapi跨域

 

第一种在Web.config中<system.webServer>节点中配置(不支持多个域名跨域)

1     <httpProtocol>
2 <customHeaders>
3 <add name="Access-Control-Allow-Origin" value="http://localhost:31551" />
4 <add name="Access-Control-Allow-Headers" value="*" />
5 <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE" />
6 </customHeaders>
7 </httpProtocol>

第二种方式,在项目中用NuGet安装microsoft.aspnet.webapi.cors(支持多个域名跨域)

如果遇到  System.FieldAccessException: 方法“System.Web.Http.GlobalConfiguration..cctor()”尝试访问字段“System.Web.Http.GlobalConfiguration.CS$<>9__CachedAnonymousMethodDelegate2”失败。

这个问题,我这边 是因为 Microsoft.AspNet.WebApi  2 没有安装,安装之后就没问题了

1.然后在App_Start文件夹下面的WebApiConfig.cs文件夹配置跨域

2.也可以在配置文件中设置,然后读取配置文件

在appSettings节点中配置

1     <add key="cors_allowOrigins" value="http://localhost:31551,http://localhost:6449"/>
2 <add key="cors_allowHeaders" value="*"/>
3 <add key="cors_allowMethods" value="*"/>

然后在App_Start文件夹下面的WebApiConfig.cs文件夹配置跨域

 1 public static void Register(HttpConfiguration config)
2 {
3 //跨域配置
4 //config.EnableCors(new System.Web.Http.Cors.EnableCorsAttribute("http://localhost:31551,http://localhost:6449", "*", "*"));
5
6 var allowOrigins = ConfigurationManager.AppSettings["cors_allowOrigins"];
7 var allowHeaders = ConfigurationManager.AppSettings["cors_allowHeaders"];
8 var allowMethods = ConfigurationManager.AppSettings["cors_allowMethods"];
9 var globalCors = new System.Web.Http.Cors.EnableCorsAttribute(allowOrigins, allowHeaders, allowMethods);
10 config.EnableCors(globalCors);
11
12 config.Routes.MapHttpRoute(
13 name: "DefaultApi",
14 routeTemplate: "api/{controller}/{action}/{id}",
15 defaults: new { id = RouteParameter.Optional }
16 );
17 }

3.如果你只想对某一些api做跨域,可以直接在API的类上面使用特性标注即可。

先在App_Start文件夹下面的WebApiConfig.cs启用Cors

然后在接口前面加上标注就行了

 1     [System.Web.Http.Cors.EnableCors(origins: "http://localhost:31551", headers: "*", methods: "GET,POST,PUT,DELETE")]
2 public class ChargingController : ApiController
3 {
4 /// <summary>
5 /// 得到所有数据
6 /// </summary>
7 /// <returns>返回数据</returns>
8 [HttpGet]
9 public string GetAllChargingData()
10 {
11 return "Success";
12 }
13 }

参考  http://www.cnblogs.com/moretry/p/4154479.html

    http://www.cnblogs.com/landeanfen/p/5177176.html#_labelTop

 

C# webapi跨域的更多相关文章

  1. C#进阶系列——WebApi 跨域问题解决方案:CORS

    前言:上篇总结了下WebApi的接口测试工具的使用,这篇接着来看看WebAPI的另一个常见问题:跨域问题.本篇主要从实例的角度分享下CORS解决跨域问题一些细节. WebApi系列文章 C#进阶系列— ...

  2. WebApi 跨域问题解决方案:CORS

    注:本文为个人学习摘录,原文地址:http://www.cnblogs.com/landeanfen/p/5177176.html 前言:上篇总结了下WebApi的接口测试工具的使用,这篇接着来看看W ...

  3. C#进阶系列——WebApi 跨域问题解决方案:CORS(转载)

    C#进阶系列——WebApi 跨域问题解决方案:CORS   阅读目录 一.跨域问题的由来 二.跨域问题解决原理 三.跨域问题解决细节 1.场景描述 2.场景测试 四.总结 正文 前言:上篇总结了下W ...

  4. asp.net—WebApi跨域

    一.什么是跨域? 定义:是指浏览器不能执行其他网站的脚本,它是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制. 同源策略限制了以下行为: 1.Cookie.LocalStora ...

  5. 关于WebAPI跨域踩到的一点坑

    最近在尝试前后端分离的WebAPI+AngularJS方案,在率先处理授权的时候,踩到了一点WebAPI跨域的坑,其实严格意义上来说也不算是坑吧,只是我自己对WebAPI不熟悉而已,这里我与大家分享一 ...

  6. WebAPI跨域处理

    原文来自:http://www.cnblogs.com/heifengwll/p/6243374.html WebApi2跨域问题   一.跨域问题产生的原因:同源策略(Same origin pol ...

  7. SNF快速开发平台MVC-EasyUI3.9之-WebApi跨域处理方案

    在做Web开发中,常常会遇到跨域的问题,到目前为止,已经有非常多的跨域解决方案.由于时间有限,本文不会深入. 笔者遇到的问题是Js调用WebAPI中的数据进行跨域的场景.涉及若干跨域方案:目前采用we ...

  8. (转)C# WebApi 跨域问题解决方案:CORS

    原文地址:http://www.cnblogs.com/landeanfen/p/5177176.html 阅读目录 一.跨域问题的由来 二.跨域问题解决原理 三.跨域问题解决细节 1.场景描述 2. ...

  9. sql的行转列(PIVOT)与列转行(UNPIVOT) webapi 跨域问题 Dapper 链式查询 扩展 T4 代码生成 Demo (抽奖程序)

    sql的行转列(PIVOT)与列转行(UNPIVOT)   在做数据统计的时候,行转列,列转行是经常碰到的问题.case when方式太麻烦了,而且可扩展性不强,可以使用 PIVOT,UNPIVOT比 ...

  10. 连表查询都用Left Join吧 以Windows服务方式运行.NET Core程序 HTTP和HTTPS的区别 ASP.NET SignalR介绍 asp.net—WebApi跨域 asp.net—自定义轻量级ORM C#之23中设计模式

    连表查询都用Left Join吧   最近看同事的代码,SQL连表查询的时候很多时候用的是Inner Join,而我觉得对我们的业务而言,99.9%都应该使用Left Join(还有0.1%我不知道在 ...

随机推荐

  1. 2019牛客暑期多校训练营(第四场)k题、j题

    传送门 k题: 题意: 给你一串由数字构成的字符串,你从这个字符串中找子字符串使这个字符串是300的倍数 题解: 这道题和第三场的B题极其相似 首先可以把是三百的倍数分开,必须要是100和3的倍数 是 ...

  2. 使用eclipse搭建第一个java web应用

    一. 首先是eclipse得下载,你要下载Eclipse IDE for Java EE这种类型的,我之前下载的Eclipse IDE for Enterprise Java Developers是官 ...

  3. 哈尔滨理工大学软件与微电子学院程序设计竞赛(同步赛) C.Coronavirus (BFS)

    题意:有一个图,要求从\(S\)走到\(E\),\(.\)表示可以走的路径,\(*\)周围的八个方向均不能走,要求判断是否能走到\(E\),若能,输出最小路径长度,否则输出\(Impossible\) ...

  4. hutool学习总结

    1. 为什么要学习Hutool的使用 Hutool官网 中文写的已经很清楚了 Hutool是一款强力的工具类.封装了工作开发中一些常见的功能操作.避免重复造轮子,使用它大大提高的开发效率. 2. Hu ...

  5. 二进制安装kubernetes(一) 环境准备及etcd组件安装及etcd管理软件etcdkeeper安装

    实验环境: 架构图: 主机环境: 操作系统:因docker对内核需要,本次部署操作系统全部采用centos7.6(需要内核3.8以上) VM :2C 2G 50G * 5  PS:因后面实验需要向k8 ...

  6. C# TextBlock

    TextBlock 适合长文本多行显示,Label可以看成是一个简短的单行的TextBlock,只是Label可以显示图片,TextBlock只能显示纯文本 默认的文本不会分行显示,超出窗体宽度的字符 ...

  7. 记一次getshell

    水文涉及的知识点: Oday的挖掘 可以执行命令,但是有WAF , 命令执行的绕过 机器不出网,无法反弹 Echo写文件,发现只要写入php文件,后缀就重名为*,如1.php 变成1.* 通过上传 l ...

  8. 一分钟搞懂JavaScript中的JSON对象

    JSON(JavaScript Object Notation)是表示值和对象的通用格式. JavaScript 提供了如下方法: JSON.stringify 将对象转换为 JSON. JSON.p ...

  9. js bitwise operation all in one

    js bitwise operation all in one 位运算 & 按位与 | 按位或 ^ 按位异或 / XOR let a = 5; // 000000000000000000000 ...

  10. svg opacity & fill-opacity & stroke-opacity

    svg opacity & fill-opacity & stroke-opacity opacity = ill-opacity + stroke-opacity https://s ...