最近写一个供其他系统调用的接口,决定使用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使用的更多相关文章

  1. 做完小程序项目、老板给我加了5k薪资~

    大家好,我是苏南,今天要给大家分享的是最近公司做的一个小程序项目,过程中的一些好的总结和遇到的坑,希望能给其他攻城狮带来些许便利,更希望能做完之后老板给你加薪- 今天是中秋节的第一天,假日的清晨莫名的 ...

  2. 微服务之十四如何在 Ocelot 网关中配置多实例 Swagger 访问

    一.介绍 当我们开发基于微服务的应用程序的时候,有一个环节总是跳不过去的,那就是要创建 WebApi,然后,我们的应用程序基于 WebApi 接口去访问.在没有 Swagger 以前,我们开发好了 W ...

随机推荐

  1. input上传图片预览

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <t ...

  2. 第四周 技术随笔psp

    本周psp 类型 内容 开始时间 结束 打断时间 净时间 写随笔 Scrum会议 23:46 00:27 0 41分

  3. hdu---(1280)前m大的数(计数排序)

    前m大的数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  4. Tarjan--LCA算法的个人理解即模板

    tarjan---LCA算法的步骤是(当dfs到节点u时): 实际:  并查集+dfs 具体步骤: 1 在并查集中建立仅有u的集合,设置该集合的祖先为u 1 对u的每个孩子v:    1.1 tarj ...

  5. JavaWeb学习之环境搭建

    1. HTML(Hyper Text Markup Language) , 超文本标记语言. HTML文件的后缀名一般是: .htm , .html 表单(form): 浏览器内核: WebKit , ...

  6. linq分页扩展(转)

    原文地址:http://www.cnblogs.com/RainbowInTheSky/p/4590508.html public static List<T> ToPagedList&l ...

  7. hdu5878 I Count Two Three(二分+ 打表)

    题目链接:hdu5878 I Count Two Three 题意:给出一个整数n, 找出一个大于等于n的最小整数m, 使得m可以表示为2^a * 3^b * 5^c * 7^d​​. 题解:打表预处 ...

  8. AngularJS理论基础

    AngularJS理论基础 AngularJs是一个用于设计动态web应用的结构框架. 它是一个框架,不是类库,是像EXT一样提供一整套方案用于设计web应用.它不仅仅是一个javascript框架, ...

  9. win7 摄像头驱动软件找不到,只有sys文件

    有的驱动只有sys文件,但是仍然可以在qq视频等用,只是找不到amcap.exe等可执行文件, 因为没有摄像头软件,下载一个安装上即可

  10. hdu 4631 Sad Love Story

    http://acm.hdu.edu.cn/showproblem.php?pid=4631 没想到这道题需要用“平均时间复杂度” 计算   一直没有想到解法  因为不符考虑了最坏情况的理念 方法一: ...