最近我需要自己搭一个框架,保证前后端分离,所以视图跟接口分开处理,接口用的是Swagger,因为WEB跟WEBAPI的端口都不一样,我测试的时候WEB端口:44375 ,WEBAPI的端口:44384;导致我们前端AJAX去调用接口的时候调不通,这里呢!我想说两个问题:
一、Swagger的调用
直接导一个包就可以了:
install-package Swashbuckle
以前的方法可以去看一下这博主的,说的很清楚!
C# 在webapi项目中配置Swagger - alun-chen - 博客园
如果是刚配置的的Swagger访问地址默认不是你想的界面
用这个地址 http://localhost:XXXX/swagger/ui/index#/才可以进界面
二、WEB和WEBAPI跨域的问题;
跨域需要处理的是:
代码放在下面:
1. webAPI.Config 在system.webserver中:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
2.Global.asax 加在Application_Start ()中
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Converters.Add(
new Newtonsoft.Json.Converters.IsoDateTimeConverter() { DateTimeFormat = "yyyy/MM/dd HH:mm:ss" }
);
我处理跨域的时候遇见这样的问题:百度有一篇文章是涉及了Cors 我用Cors出处理没有反应,后面用我这个方法的时候,必须把之前用Cors处理的文件全部处理掉,不然冲突!
之前安装Cors的时候其他都备注了,这个文件没有备注就一直报错,把这个备注就可以了!
但是后面又取消备注又可以了,没取消之前一直不行! 如果你们遇见可以尝试备注一下!
前端用AJAX去调用Swagger的接口就能调用用成功了!
你们可能会用到的东西:
接口写法模板:
JS中AJAX模板:
这是这两天我遇见的问题和你们可能想问的问题,第一次搭建一个小框架直接测试用!
希望对你们有帮助!!!!