zoukankan      html  css  js  c++  java
  • .net core5 webapi + vue + axios 搭建一个跨域访问的例子

    这里我以自己创建一个个人信息的model为例,在前端使用table来展示人员信息。

    后端:

    首先创建一个.netcore的项目(我目前版本是.netcore5),在解决方案中(Controllers同级)添加一个Models的文件夹用来存放人员信息的类。

     1 public class EmployeeInfo
     2 {
     3     public int EmployeeNo { get; set; }
     4     public string EmployeeName { get; set; }
     5     public int Age { get; set; }
     6     public int Sex { get; set; }
     7     public string Position { get; set; }
     8     public bool IsActive { get; set; } = false;
     9     public DateTime CreateDate { get; set; } = DateTime.Now;
    10 }

    在控制器Controllers中创建一个EmployeeInfoController的包含读写操作API控制器。

    加入人员信息:

     1 private List<EmployeeInfo> employeeInfos = new List<EmployeeInfo>
     2 {
     3     new EmployeeInfo{
     4         EmployeeNo = 1,
     5         EmployeeName = "Jack",
     6         Age = 21,
     7         Sex = 1,
     8         Position = "Front-end Development",
     9     },
    10     new EmployeeInfo{
    11         EmployeeNo = 2,
    12         EmployeeName = "Tom",
    13         Age = 23,
    14         Sex = 0,
    15         Position = "Front-end Development",
    16     },
    17     new EmployeeInfo{
    18         EmployeeNo = 3,
    19         EmployeeName = "Martin",
    20         Age = 22,
    21         Sex = 1,
    22         Position = ".Net Development",
    23     },
    24 };

    修改获取数据(Get)的方法:

    1 [HttpGet]
    2 public IEnumerable<EmployeeInfo> Get()
    3 {
    4     return employeeInfos;
    5 }

    允许跨域的配置:

    找到Startup.cs这个文件,这里我在外面定义一个变量来存。

    1 readonly string AllowRequestOrigins = "_allowRequestOrigins";

    然后找到ConfigureServices这个方法,添加一个允许访问的域

    1 services.AddCors(options =>
    2 {
    3     options.AddPolicy(AllowRequestOrigins, builder =>
    4     {
    5         //允许访问该api的域
    6         builder.WithOrigins("http://localhost:8080").AllowAnyHeader().AllowAnyMethod();
    7      });
    8 });

    最后在Configure配置中使用这个允许跨域的变量,记得加在app.UseRouting();和app.UseEndpoints()之间。

    1 app.UseCors(AllowRequestOrigins);

    以上后端配置都已经完成,接下来允许项目看看是否能够正确生成数据。

    可以看到我的api接口为http://localhost:61475/api/EmployeeInfo,数据都能正常显示,那么接下来我在前端使用axios来访问这个接口。看是否能够正确请求到这个接口。

    前端:

    ui部分

     1 <template>
     2     <el-row>
     3         <el-col>
     4             <el-table :data="datalist">
     5                 <el-table-column prop="employeeNo" label="Employee No"></el-table-column>
     6                 <el-table-column prop="employeeName" label="Employee Name"></el-table-column>
     7                 <el-table-column prop="age" label="Age"></el-table-column>
     8                 <el-table-column prop="sex" label="Sex"></el-table-column>
     9                 <el-table-column prop="position" label="Position"></el-table-column>
    10                 <el-table-column prop="createDate" label="Create Date"></el-table-column>
    11                 <el-table-column prop="isActive" label="Is Active"></el-table-column>
    12             </el-table>
    13         </el-col>
    14     </el-row>
    15 </template>

    JS部分

     1 export default {
     2   data() {
     3     return {
     4       datalist: [],
     5     };
     6   },
     7 
     8   mounted() {
     9     let _self = this;
    10     _self
    11       .$axios({
    12         method: "get",
    13         url: "http://localhost:61475/api/EmployeeInfo",
    14       })
    15       .then((response) => {
    16         let data = response.data;
    17         for (let item of data) {
    18           item.sex = item.sex === 1 ? "man" : "woman";
    19           item.isActive = item.isActive ? "yes" : "no";
    20           item.createDate = new Date(item.createDate).toLocaleDateString();
    21         }
    22         _self.datalist = data;
    23       });
    24   },
    25 };

    运行后的效果可以看到数据都能正常显示

  • 相关阅读:
    MFC project for a non-Unicode character set is deprecated
    关于Visual Studio 2013 编译 multi-byte character set MFC程序出现 MSB8031 错误的解决办法
    字符串比较自实现
    各种语言里获取当前模块的方法:ABAP,ABSL,C,nodejs
    SAP CRM product attachment的document template功能
    ABAP, UI5和webpack的处理入口
    ABAP, Maven, CF App和Webpack的build
    json格式的字符串序列化和反序列化的一些高级用法
    SAP ABAP Netweaver容器化, 不可能完成的任务吗?
    UI Component in CRM WebUI and Hybris
  • 原文地址:https://www.cnblogs.com/pipim/p/13994530.html
Copyright © 2011-2022 走看看