.NET MVC第八章、Web Api 跨域接口

本文介绍.NET MVC WebAPI项目的创建及配置过程,包括修改数据返回格式为JSON、调整访问路径,并实现自定义API接口。此外,还详细讲解了如何进行跨域配置,确保接口能够正常跨域访问。

.NET MVC第八章、Web Api 跨域接口


目录

.NET MVC第八章、Web Api 跨域接口

创建Web Api项目

WebApi项目启动

主页中的API选项

ASP.NET MVC WEB API操作

1、修改返回数据格式

2、修改访问路径

3、自定义API接口

创建自定义接口函数

启动访问

跨域配置

跨域访问测试


 

创建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中如果看到这句话就代表接口没跨域。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

红目香薰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值