前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >.NET MVC第八章、Web Api 跨域接口

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

作者头像
红目香薰
发布2022-11-30 19:22:22
5510
发布2022-11-30 19:22:22
举报
文章被收录于专栏:CSDNToQQCode

.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函数中。

代码语言:javascript
复制
//清除XML返回格式            
GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();

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

发现数据已经从XML格式编程字符串格式,但是我们的方式

2、修改访问路径

由于我们要根据请求头来判断请求的具体函数,比较麻烦,所以我们在访问路由上加上一个【action】层级,让请求的写法符合我们的常识。

代码语言:javascript
复制
routeTemplate: "api/{controller}/{action}/{id}",

3、自定义API接口

依次选择【Web API】,【Web API 2控制器 - 空】,【添加】

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

可以看到继承的是ApiController

创建自定义接口函数

默认的请求头是get可以省略,如果是post就一定要写。

代码语言:javascript
复制
[HttpGet]
public Object GetInfo() {
    return new List<string>() { "苏洵", "苏轼", "苏辙", "苏秦", "苏代", "苏厉" };
}

启动访问

http://localhost:1246/api/Test/GetInfo

跨域配置

代码语言:javascript
复制
<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>

跨域访问测试

代码语言:javascript
复制
<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中如果看到这句话就代表接口没跨域。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • .NET MVC第八章、Web Api 跨域接口
  • 创建Web Api项目
  • WebApi项目启动
  • 主页中的API选项
  • ASP.NET MVC WEB API操作
  • 1、修改返回数据格式
  • 2、修改访问路径
  • 3、自定义API接口
  • 创建自定义接口函数
  • 启动访问
  • 跨域配置
  • 跨域访问测试
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档