创建Web Api项目
在创建项目的时候需要选择Web Api,取消【为HTTPS】配置,如果选了的话操作的时候会比较麻烦。

WebApi项目启动

主页中的API选项

这里选择get请求的api/values

help下面的api/values对应结果

这个不是我们想要的,那么我们单独访问一下ip:port/api/values
http://localhost:1246/api/Values

返回的是XML格式数据

能看到默认返回的是XML格式的数据,这个是比较麻烦的,不是我们需要的数据格式,我们需要json数据,故而要进行一定的修改
ASP.NET MVC WEB API操作
由于WebApi的单独的一个项目,它的默认配置不太合适咱们使用,我们要对默认设置做一些调整。
1、修改返回数据格式
将下面的依据编码放置到App_start文件夹下的WebApiConfig里Register函数中。
//清除XML返回格式
GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();

重新启动服务,访问http://localhost:1246/api/Values进行二次请求测试

发现数据已经从XML格式编程字符串格式,但是我们的方式
2、修改访问路径
由于我们要根据请求头来判断请求的具体函数,比较麻烦,所以我们在访问路由上加上一个【action】层级,让请求的写法符合我们的常识。
routeTemplate: "api/{controller}/{action}/{id}",

3、自定义API接口
依次选择【Web API】,【Web API 2控制器 - 空】,【添加】

输入控制器名称,一定要以Controller结束

可以看到继承的是ApiController

创建自定义接口函数
默认的请求头是get可以省略,如果是post就一定要写。
[HttpGet]
public Object GetInfo() {
return new List<string>() { "苏洵", "苏轼", "苏辙", "苏秦", "苏代", "苏厉" };
}

启动访问
http://localhost:1246/api/Test/GetInfo

跨域配置
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="*" />
<add name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,OPTIONS" />
</customHeaders>
</httpProtocol>

跨域访问测试
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script>
$(document).ready(function () {
$.ajax({
url: "http://localhost:1246/api/Test/GetInfo",
type: "Get",
dataType: "json",
success: function (data) {
document.write(data);
}
});
});
</script>
在路径上能看到绝对是本地访问,所以肯定会出现跨域问题,我们跨域后就可以直接访问这个接口。

如果接口没有进行跨域设置则会报错:
Access-Control-Allow-Origin
在F12中如果看到这句话就代表接口没跨域。