webapi设置允许跨域的方法如下
config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
具体的设置方法可以参照另一个博客:https://blog.csdn.net/u010593753/article/details/89215486
部署到IIS上一切正常
当加入权限认证的时候问题就来了
WebApi后端我是用 FormsAuthenticationTicket 做的权限验证,这里不做具体介绍
在api控制器里加上[RequestAuthorize],当调用里面的方法时就会进行验证了
如果对方法不用验证,比如登录,则可以加上 [AllowAnonymous] 即可,如下图:
服务端基本就完成了,前端ajax调用时head需要加上验证,如下图
当加上这句话的时候前端就报错了,请求都到不了服务端,百度了下原来是对于特殊的请求头会先发送options获取信息然后在发送数据,iis会一直拦截提示跨域问题,不知道怎么设置iis跳过options的检查,后来就把代码跨域注释掉了,改成了iis配置如下图:
跨域问题暂时解决了,再来服务端,服务端生成的token准备存放在session中,测试代码如下
前端ajax获取的时候发现没获取到,百度了很久终于找到答案了
在ajax里加上如下图:
即可解决问题,搞了几天前后端的调试终于结束,
学习中,不到之处敬请谅解,记下来供日后参考