第27章 uView 内置路由使用注意事项

1 uView 内置路由不支持通过“localhost”域名直接获取数据。

    在前后分离开发中“axios” 路由支持使用“localhost”域名或IP地址获取后端的数据,所以不管是IIS部署还是后端调试通过“axios” 路由都能获取数据,对于.NetCore的前后端分离开发来说“axios” 路由是最好的选择。但在移动开发中经常使用“uView”前端模版,“uView”前端模版中内置了自己的路由,但是“uView”内置路由不选择支持使用“localhost”域名,不管该“localhost”域名是由IIS提供还是“.NetCore”提供,如果使用“localhost”域名将会出现以下现象(<noscript><strong>本站点必须要开启JavaScript才能运行</strong></noscript>)

async onLoad() {

            console.log("可用域名示例:", await this.$u.get(

                'https://api-hmugo-web.itheima.net/api/public/v1/home/swiperdata'));

            console.log("IIS--HTTP--localhost--不可用域名示例:", await this.$u.get(

                'http://localhost:8080/WeatherForecast/Get'));

            console.log("IIS--HTTP: 127.0.0.1:8080--可用域名示例:", await this.$u.get(

                'http://127.0.0.1:8080/WeatherForecast/Get')); //注意必须包含“8080”端口。

            console.log("IIS--HTTP: 192.168.1.100:8080--可用域名示例:", await this.$u.get(

                'http://127.0.0.1:8080/WeatherForecast/Get')); //注意必须包含“8080”端口。

        },

2 uView 内置路由与IIS HTTPS

    .Netcore 第一次使用IIS Express或https 调试Web/WepApi程序时会使用“IIS Express Development Certificate”SSL证书对“localhost”域名进行安全认证,所以不管IIS HTTPS或.Netcore 第一次使用IIS Express或https调用“localhost”域名时都是安全的例如:

而本机IP:127.0.0.1(IPV4)/192.168.2.230(IPV4)/::1(IPV6)是特殊的IP地址,“IIS Express Development Certificate”SSL证书是不能对其进行安全认证的例如:

    通过上面这些图可以直接看出本机IP:127.0.0.1(IPV4)/192.168.2.230(IPV4)/::1(IPV6)是不安全的,也可以得到“IIS Express Development Certificate”SSL证书只对“localhost”域名进行安全认证,而不能对本机IP:127.0.0.1(IPV4)/192.168.2.230(IPV4)/::1(IPV6)进行安全认证,uView”内置路由要获取基于IIS HTTPS数据源时,如果该数据源没有通过SSL证书进行安全认证,那么是不会获取数据的:“[Vue warn]: Error in onLoad hook (Promise/async): "[object Object]"”

3 通过mkcert生成SSL证书对本机IP进行安全认证

3.1 下载mkcert

Releases · FiloSottile/mkcert (github.com)

3.2 使用mkcert生成本机IP SSL证书

3.2.1 查看

    1、 按“Windows键+R”调出运行框,输入certmgr.msc命令。打开证书控制台。

2、C:\Users\Administrator\AppData\Local\mkcert(错误命令)

3.2.2 运行mkcert


    1、执行命令:C:\Users\Administrator\Downloads\mkcert-v1.4.4-windows-amd64.exe -install

查看:

2、C:\Users\Administrator\AppData\Local\mkcert(正确命令)

3、执行命令:C:\Users\Administrator\Downloads>mkcert-v1.4.4-windows-amd64.exe 127.0.0.1 ::1 192.168.1.100 localhost

4、执行命令:C:\Users\Administrator\Downloads>mkcert-v1.4.4-windows-amd64.exe -pkcs12 127.0.0.1 ::1 192.168.1.100 localhost

5、执行命令:C:\Users\Administrator\Downloads>mkcert-v1.4.4-windows-amd64.exe -client 127.0.0.1 ::1 192.168.1.100 localhost

6、执行命令:C:\Users\Administrator\Downloads>mkcert-v1.4.4-windows-amd64.exe -pkcs12 -client 127.0.0.1 ::1 192.168.1.100 localhost

4 安装本机SSL证书

4.1 安装IIS服务器证书

密码:changeit

4.2 安装客户端SSL证书

    1、单击127.0.0.1+3-client.p12


   

2、验证使用“mkcert”生成的本机SSL证书是否已经对本机IP进行了认证

  console.log("IIS--HTTPS: 127.0.0.1--可用域名示例:", await this.$u.get(

                'https://127.0.0.1/WeatherForecast/Get')); //注意不能包含“443”端口。

            console.log("IIS--HTTPS: 192.168.1.100--可用域名示例:", await this.$u.get(

                'https://192.168.1.100/WeatherForecast/Get')); //注意不能包含“443”端口。

    这时 uView 内置路由就可能通过IIS HTTPS协议获取服务器端数据了。

5 Program.cs

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.

builder.Services.AddControllers();

// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle

builder.Services.AddEndpointsApiExplorer();

builder.Services.AddSwaggerGen();

var app = builder.Build();

//注意:在IIS部署时如果不定义该自定义管道中间件“http://localhost:8080”页面会出现“404”错误,但“http://localhost:8080/Swagger/index.html”页面可用;

//“SwaggerHomeMiddleware”管道中间件的直接实现调用。

app.Use(async (context, next) =>

{

    if (context.Request.Path == "/")

    {

        context.Response.Redirect("/Swagger/index.html");

        return;

    }

    await next.Invoke();

});

app.UseSwagger();

app.UseSwaggerUI();

app.UseHttpsRedirection();

app.UseAuthorization();

//如果想要前端路由获取后端数据,.Net(Core)x框架所定义的后端必须先引入跨域管道定义,否则前端路由将不能获取后端数据。

app.UseCors(x => x

    .SetIsOriginAllowed((host) => true)//设置指定的isOriginAllowed为基础策略。

    .AllowAnyOrigin()//允许所有来源的CORS请求和任何请求协议(HTTPHTTPS)AllowAnyOrigin不安全,因为任何网站都可以向应用程序发出跨域请求。

    .AllowAnyMethod()//确保策略允许任何方法。

    .AllowAnyHeader()); //确保策略允许任何标头。

app.MapControllers();

app.Run();

对以上功能更为具体实现和注释见:230627_028WebApi(uView 内置路由获取IIS http或https数据测试)

230627_001uView_default(uView 内置路由获取IIS http或https数据测试)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/33740.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NLP学习笔记(二)

文章目录 &#xff08;一&#xff09;负采样&#xff08;二&#xff09;GloVe1.带全局语料库的跳元模型2.GloVe模型3.问题4.跳元模型与GloVe模型的比较 &#xff08;三&#xff09;问题1.参数初始化2.梯度下降3.下游任务4.句法信息5.似然估计6.词向量表示 &#xff08;一&#…

2023 中兴捧月算法挑战赛-自智网络-参赛总结

“中兴捧月”是由中兴通讯面向在校大学生举办的全球性系列赛事活动&#xff0c;致力于培养学生建模编程、创新、方案策划和团队合作能力。今年是在学校的宣传下了解到比赛&#xff0c;最初抱着学习的态度报名了比赛&#xff0c;最终进入了决赛&#xff0c;完成了封闭的开发与赛…

Jenkins+Gitlab+Springboot项目部署Jar和image两种方式

Springboot环境准备 利用spring官网快速创建springboot项目。 添加一个controller package com.example.demo;import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;RestController public class…

【结构型设计模式】桥接模式

一、写在前面 桥接模式&#xff08;Bridge&#xff09;&#xff1a;桥接模式是一种结构型设计模式&#xff0c;其目的是将抽象部分和实现部分分离&#xff0c;允许它们可以独立地变化。该模式通过创建一个桥接类&#xff0c;连接抽象和实现&#xff0c;使得它们可以独立地进行…

网络安全(黑客)自学笔记

建议一&#xff1a;黑客七个等级 黑客&#xff0c;对很多人来说充满诱惑力。很多人可以发现这门领域如同任何一门领域&#xff0c;越深入越敬畏&#xff0c;知识如海洋&#xff0c;黑客也存在一些等级&#xff0c;参考知道创宇 CEO ic&#xff08;世界顶级黑客团队 0x557 成员…

C语言:数据的存储

往期文章 C语言&#xff1a;初识C语言C语言&#xff1a;分支语句和循环语句C语言&#xff1a;函数C语言&#xff1a;数组C语言&#xff1a;操作符详解C语言&#xff1a;指针详解C语言&#xff1a;结构体 目录 往期文章前言1. 数据的类型2. 整型在内存中的存储2.1 原码、反码、…

Qt/C++编写onvif工具(搜索/云台/预置位/OSD/录像存储)

一、前言 从最初编写这个工具开始的时间算起来&#xff0c;至少5年多&#xff0c;一直持续完善到今天&#xff0c;这个工具看起来小也不小大也不大&#xff0c;但是也是经历过无数个现场的洗礼&#xff0c;毫不夸张的说&#xff0c;市面上能够遇到的主流的厂商的设备&#xff…

网络基础一

网络发展 独立模式&#xff1a;计算机之间相互独立。 网络互联&#xff1a;多台计算机连接在一起&#xff0c;完成数据共享。 局域网LAN&#xff1a;计算机数量更多了&#xff0c;通过交换机和路由器连接在一起&#xff1b; 广域网WAN&#xff1a;将远隔千里的计算机都连在…

2023年6月Web3行业月度发展报告区块链篇 | 陀螺科技会员专享

6月&#xff0c;合规与监管成为本月加密领域的主旋律&#xff0c;在海外&#xff0c;SEC接连起诉币安与Coinbase两大交易平台&#xff0c;并将除BTC、ETH、USD系等的几乎所有加密货币列为证券&#xff0c;引发市场哗然&#xff0c;行情也与之紧密关联&#xff0c;随着做市商缓慢…

基于Echarts2.X的地图数据可视化指南

目录 前言 一、关于Echarts版本 1、为什么用Echarts2.2.7 2、文件目录说明 二、地图数据可视化 1、新建map.html 2、Echarts图表初始化 3、参数设置 三、源码展示分析 1、初始化阶段 2、timelineOption.js模拟数据 总结 前言 在前面的博文&#xff08;数据会说话-从我国…

C国演义 [第七章]

第七章 最长重复子数组题目理解步骤dp含义递推公式初始化为啥dp数组如此奇怪 遍历顺序 代码 最长公共子序列题目理解步骤dp含义递推公式初始化遍历顺序 代码 总结 最长重复子数组 力扣链接 给两个整数数组 nums1 和 nums2 &#xff0c;返回 两个数组中 公共的 、长度最长的子…

初识express/路由/中间件

路由的概念 模块化路由 中间件(要有输入输出) 简化版本 全局生效中间件 局部生效中间件 注意事项 中间件分类 内置中间件,解析请求体/url-encoded 自定义中间件 使用querystring模块解析请求体数据 编写接口 ​​​​​​​

希尔排序(C语言)

希尔排序 一、希尔排序的原理二、动图演示三、代码实现四、实现从小到大排序五、希尔排序的优缺点 一、希尔排序的原理 希尔排序是插入排序的一种更高效的改进版本。 1.将原始待排数据按照设定的增量gap分成多组&#xff0c;每组有n / gap个元素。 2.对这些分组进行插入排序&a…

单表-DQL

注意&#xff1a;这张图还包含了对于的顺序&#xff0c;先分组再排序&#xff0c;再分页&#xff0c;顺序不能乱 基本查询 # 1.基本查询 # 查询全部行 select * from tb_emp; select id, user_name, password, name, gender, image, job, entry_date, create_time, update_ti…

yarn与npm的区别(yarn的安装报错问题)

一、yarn 是什么&#xff0c;yarn 与 npm 的区别是什么&#xff1f; yarn 是一个软件包管理系统&#xff0c;Yarn 和 npm 都是包管理工具&#xff0c;用于管理用 JavaScript 编写的软件包&#xff0c;yarn的出现是为了弥补 npm的一些缺陷。yarn 与 npm 的区别 &#xff1a; 性能…

MongoDB复制集原理

复制集简介 Mongodb复制集由一组Mongod实例&#xff08;进程&#xff09;组成&#xff0c;包含一个Primary节点和多个Secondary节点&#xff0c;Mongodb Driver&#xff08;客户端&#xff09;的所有数据都写入Primary&#xff0c;Secondary从Primary同步写入的数据&#xff0…

3.springboot开发篇

SpringBoot开发实用篇 ​ KF-1.热部署 热部署是不用重启项目&#xff0c;项目自动更新 非springboot项目热部署实现原理 ​ 开发非springboot项目时&#xff0c;我们要制作一个web工程并通过tomcat启动&#xff0c;通常需要先安装tomcat服务器到磁盘中&#xff0c;开发的程序…

密码学证明方案寒武纪大爆发——扩容、透明性和隐私的变革潜力

1. 引言 前序博客有&#xff1a; ZKP大爆炸 本文主要参考&#xff1a; StarkWare 2023年6月博客 Cambrian Explosion of Cryptographic Proofs----The transformative potential for scalability, transparency, and privacy2023年3月Eli Ben-Sasson在The 13th BIU Winter …

vmware postgresql大杂烩

Vmware 窗口过界&#xff1a; https://blog.csdn.net/u014139753/article/details/111603882 vmware, ubuntu 安装&#xff1a; https://zhuanlan.zhihu.com/p/141033713 https://blog.csdn.net/weixin_41805734/article/details/120698714 centos安装&#xff1a; https://w…

形式化验证,QED: Quick Error Detection Tests for Effective Post-Silicon Validation(二)

目录 一、Article:文献出处&#xff08;方便再次搜索&#xff09; &#xff08;1&#xff09;作者 &#xff08;2&#xff09;文献题目 &#xff08;3&#xff09;文献时间 &#xff08;4&#xff09;引用 二、Data:文献数据&#xff08;总结归纳&#xff0c;方便理解&am…