WABAPI使用
最近写一个供其他系统调用的接口,决定使用wabapi,以前只是大概了解wabapi是什么东西,没有写过自己的api,从头开始学习.
1、开始创建一个webapi的项目,不得不说VS真的替我们省了好多事,基本需要的东西都创建好了,测试的valueAPI也可以正常调用;
2、创建完成之后开始添加编写字节的API,然后发现跨域调用的问题,从网上查了资料,配置webconfig,,添加如下配置
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With" />
<add name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,OPTIONS" />
</customHeaders>
</httpProtocol>
不加认证的API加上之后基本就可以实现跨域调用了
3.API写完之后调用,因为API创建的数据库是数据code first ,会创建identityUser数据库,想让第三方系统的数据和已有数据库管理上,就在认证用户的时候做了点小处理,
GrantResourceOwnerCredentials方法中添加对aspnetuser和已有数据库的管理操作;
4.改完之后跨域调用发现能正常获取token,但是不能正常调用API,报405的错误,然后调试发现是头部认证没有穿过去,然后不论是post,还是get到服务器都成了option;
5.然后去网上找资料发现官方有对4.5以上版本提供跨域解决方案,就用nuget安装了aspnet.wabapi.cor;
6.添加跨域特性之后发现,还是不能调用,奇葩的是我把上面添加的webconfig里面的配置注释掉了,发现API能正常调用,但是token不能正常获取,ajax报错,更奇怪的是我在fiddle里面发现,token请求又是正常的,而且返回了有效的token;
7.调试没发现社么不对的地方,就以为是ajax格式的问题,结果改了N种格式也不对;
8.查资料的时候偶然发现一篇文章,里面说:要让WebAPI支持CORS,第一步就是在web.config里把“ <remove name="OPTIONSVerbHandler" /> ”删掉。
9.删掉之后果然直接使用配置webconfig的方式就能正常访问;
10.
WABAPI使用的更多相关文章
- 做完小程序项目、老板给我加了5k薪资~
大家好,我是苏南,今天要给大家分享的是最近公司做的一个小程序项目,过程中的一些好的总结和遇到的坑,希望能给其他攻城狮带来些许便利,更希望能做完之后老板给你加薪- 今天是中秋节的第一天,假日的清晨莫名的 ...
- 微服务之十四如何在 Ocelot 网关中配置多实例 Swagger 访问
一.介绍 当我们开发基于微服务的应用程序的时候,有一个环节总是跳不过去的,那就是要创建 WebApi,然后,我们的应用程序基于 WebApi 接口去访问.在没有 Swagger 以前,我们开发好了 W ...
随机推荐
- iOS 静态类库 打包 C,C++文件及和OC混编
iOS 静态类库 编译 C,C++ 我们都知道,OC 原生支持C, 在 创建的 OC类的 .m 里面,可以直接编写C的代码: 同样 Xcode 也支持 OC ,C++的混编,此时,我们通常把OC创建的 ...
- linux笔记:linux常用命令-权限管理命令
一个文件的权限只有root和所有者可以更改. 权限管理命令:chmod(改变文件或目录的权限) 权限的数字表示: 用权限加减的方式改变权限(u代表所有者,g代表所属组,o代表其他人,a代表所有人): ...
- Android Drawable资源
Android实现应用d动画效果:比如App第一次打开的开始动画等 有两种:GIF动画和代码实现. 第一种:借助于Gif制作工具软件实现.一般是和第三方开源的GifView(https://githu ...
- 10个很有用的高级Git命令
迄今,我已经使用Git很长一段时间了,考虑分享一些不管你是团队开发还是个人项目,都受用的高级git命令. 1. 输出最后一次提交的改变 这个命令,我经常使用它 来发送其他没有使用git的人来检查或者集 ...
- Log 日志级别
一直对于程序中的日志级别有点模糊,今天专门百度学习下.遂成此文: 日志记录器(Logger)是日志处理的核心组件.log4j具有5种正常级别(Level).: 1.static Le ...
- hdu----(5023)A Corrupt Mayor's Performance Art(线段树区间更新以及区间查询)
A Corrupt Mayor's Performance Art Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 100000/100 ...
- 学习HTML5之塔克大战(详细记录)
学了一些HTML5的一些基本知识,开始学习制作...... 介绍一些基本知识: px(像素)--->1px等于多少? 1cm or 2cm -->no no no! (1).像素是一个 ...
- mint上部署lamp环境
不得不说现在在linux mint上部署lamp很方便,比windows服务器上的asp.net的部署升级都简单. 1 安装MySql sudo apt-get install mysql-serve ...
- servlet 配置
<servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>com.web.s ...
- NoSQL你知多少?
1.NoSQL是什么? NoSQL 是 Not Only SQL 的缩写,意即"不仅仅是SQL"的意思,泛指非关系型的数据库.强调Key-Value Stores和文档数据库的优点 ...