最近写一个供其他系统调用的接口,决定使用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. Unity5 新功能解析--GI(全局光)

    http://blog.csdn.net/leonwei/article/details/48009059 Unity5带来的最大的改变就是全新的GI,在烘焙引擎上抛弃了4的beast,使用了虚幻采用 ...

  2. Show()和ShowDialog()

    show()仅仅是显示出来窗口界面而已```也就是和你执行的结果在同一窗口显示```所显示的窗口可以在后台运行```而showDialog()是一个对话框窗口界面```执行结果以新窗口界面出现```不 ...

  3. c头文件包含关系--记今天调试的郁闷经历

    c头文件包含关系--记今天调试的郁闷经历 彭会锋 2016-08-05  21:54:08 c头文件的包含

  4. (10)odoo控制器操作

    -----------------更新时间11:17 2016-09-18 星期日    完善讲解17:44 2016-02-17 星期三-----------------* 控制器Controlle ...

  5. Java构造函数的继承问题

    ◎构造函数的继承 1.子类只继承父类的默认(缺省)构造函数,即无形参构造函数.如果父类没有默认构造函数,那子类不能从父类继承到任何构造函数. 3.在创建对象时,先调用父类默认构造函数对对象进行初始化, ...

  6. 在ubuntu(linux)下安装vim,以及vim的常用命令

    介绍vim: vim是一种编辑器,自我感觉这东西好用,就是现在有些不太习惯 如何安装: 如果是使用redhat ,系统自带着vi和vim 如果是使用ubuntu,建议使用apt-get命令, 可以尝试 ...

  7. ARM流水线关键技术分析与代码优化

    引 言    流水线技术通 过多个功能部件并行工作来缩短程序执行时间,提高处理器核的效率和吞吐率,从而成为微处理器设计中最为重要的技术之一.ARM7处理器核使用了典型三级流 水线的冯·诺伊曼结构,AR ...

  8. Jquery元素追加和删除

    原文链接:http://www.cnblogs.com/william-lin/archive/2012/08/12/2635402.html 介绍    DOM是Document Object Mo ...

  9. 79. 212. Word Search *HARD* -- 字符矩阵中查找单词

    79. Word Search Given a 2D board and a word, find if the word exists in the grid. The word can be co ...

  10. sequential minimal optimization,SMO for SVM, (MATLAB code)

    function model = SMOforSVM(X, y, C ) %sequential minimal optimization,SMO tol = 0.001; maxIters = 30 ...