网站如何做子域名什么是网站开发流程

diannao/2026/1/21 17:23:35/文章来源:
网站如何做子域名,什么是网站开发流程,新加坡建设网站,无锡制作网站公司作者 | 磊哥来源 | Java面试真题解析#xff08;ID#xff1a;aimianshi666#xff09;转载请联系授权#xff08;微信ID#xff1a;GG_Stone#xff09;跨域问题指的是不同站点之间#xff0c;使用 ajax 无法相互调用的问题。跨域问题本质是浏览器的一种保护机制#…作者 | 磊哥来源 | Java面试真题解析IDaimianshi666转载请联系授权微信IDGG_Stone跨域问题指的是不同站点之间使用 ajax 无法相互调用的问题。跨域问题本质是浏览器的一种保护机制它的初衷是为了保证用户的安全防止恶意网站窃取数据。但这个保护机制也带来了新的问题它的问题是给不同站点之间的正常调用也带来的阻碍那怎么解决这个问题呢接下来我们一起来看。跨域三种情况在请求时如果出现了以下情况中的任意一种那么它就是跨域请求协议不同如 http 和 https域名不同端口不同。也就是说即使域名相同如果一个使用的是 http另一个使用的是 https那么它们也属于跨域访问。常见的跨域问题如下图所示跨域问题演示接下来我们使用两个 Spring Boot 项目来演示跨域的问题其中一个是端口号为 8080 的前端项目另一个端口号为 9090 的后端接口项目。前端网站前端项目只需要在 resources 下放两个文件一个用于发送 ajax 请求的 jquery.js另一个是 html 前端页面工程目录如下图所示其中前端页面 index.html 的代码如下!DOCTYPE html html langen headmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0title跨域测试页面/titlescript srcjs/jquery.min.js/script /head body h1跨域测试/h1 divinput typebutton onclickmySubmit() value 发送跨域请求  /div scriptfunction mySubmit() {// 发送跨域请求jQuery.ajax({url: http://localhost:9090/test,type: POST,data: {name: Java},success: function (result) {alert(返回数据  result.data);}});} /script /body /html后端接口后端接口项目首先先在 application.properties 配置文件中设置项目的端口号为 9090如下所示server.port9090然后创建一个后端控制器返回一个 JSON 格式的数据实现代码如下import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.HashMap;RestController public class TestController {RequestMapping(/test)public HashMapString, Object test() {return new HashMapString, Object() {{put(state, 200);put(data, success);put(msg, );}};} }以上两个项目创建并启动成功之后使用前端项目访问后端接口因为端口不一样所以也属于跨域访问运行结果如下图所示解决跨域问题在 Spring  Boot 中跨域问题有很多种解决方案比如以下 5 个使用 CrossOrigin 注解实现跨域通过配置文件实现跨域通过 CorsFilter 对象实现跨域通过 Response 对象实现跨域通过实现 ResponseBodyAdvice 实现跨域。当然如果你愿意的话还可以使用过滤器来实现跨域但它的实现和第 5 种实现类似所以本文就不赘述了。解决方案1通过注解跨域使用 CrossOrigin 注解可以轻松的实现跨域此注解既可以修饰类也可以修饰方法。当修饰类时表示此类中的所有接口都可以跨域当修饰方法时表示此方法可以跨域它的实现如下import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.HashMap;RestController CrossOrigin(origins  *) public class TestController {RequestMapping(/test)public HashMapString, Object test() {return new HashMapString, Object() {{put(state, 200);put(data, success);put(msg, );}};} }以上代码的执行结果如下图所示从上图中可以看出前端项目访问另一个后端项目成功了也就说明它解决了跨域问题。优缺点分析此方式虽然虽然实现跨域比较简单但细心的朋友也能发现使用此方式只能实现局部跨域当一个项目中存在多个类的话使用此方式就会比较麻烦需要给所有类上都添加此注解。解决方案2通过配置文件跨域接下来我们通过设置配置文件的方式就可以实现全局跨域了它的实现步骤如下创建一个新配置文件添加 Configuration 注解实现 WebMvcConfigurer 接口重写 addCorsMappings 方法设置允许跨域的代码。具体实现代码如下import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;Configuration // 一定不要忽略此注解 public class CorsConfig implements WebMvcConfigurer {Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping(/**) // 所有接口.allowCredentials(true) // 是否发送 Cookie.allowedOriginPatterns(*) // 支持域.allowedMethods(new String[]{GET, POST, PUT, DELETE}) // 支持方法.allowedHeaders(*).exposedHeaders(*);} }解决方案3通过 CorsFilter 跨域此实现方式和上一种实现方式类似它也可以实现全局跨域它的具体实现代码如下import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter;Configuration // 一定不能忽略此注解 public class MyCorsFilter {Beanpublic CorsFilter corsFilter() {// 1.创建 CORS 配置对象CorsConfiguration config  new CorsConfiguration();// 支持域config.addAllowedOriginPattern(*);// 是否发送 Cookieconfig.setAllowCredentials(true);// 支持请求方式config.addAllowedMethod(*);// 允许的原始请求头部信息config.addAllowedHeader(*);// 暴露的头部信息config.addExposedHeader(*);// 2.添加地址映射UrlBasedCorsConfigurationSource corsConfigurationSource  new UrlBasedCorsConfigurationSource();corsConfigurationSource.registerCorsConfiguration(/**, config);// 3.返回 CorsFilter 对象return new CorsFilter(corsConfigurationSource);} }解决方案4通过 Response 跨域此方式是解决跨域问题最原始的方式但它可以支持任意的 Spring Boot 版本早期的 Spring Boot 版本也是支持的。但此方式也是局部跨域它应用的范围最小设置的是方法级别的跨域它的具体实现代码如下import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletResponse; import java.util.HashMap;RestController public class TestController {RequestMapping(/test)public HashMapString, Object test(HttpServletResponse response) {// 设置跨域response.setHeader(Access-Control-Allow-Origin, *);return new HashMapString, Object() {{put(state, 200);put(data, success);put(msg, );}};} }解决方案5ResponseBodyAdvice通过重写 ResponseBodyAdvice 接口中的 beforeBodyWrite返回之前重写方法我们可以对所有的接口进行跨域设置它的具体实现代码如下import org.springframework.core.MethodParameter; import org.springframework.http.MediaType; import org.springframework.http.server.ServerHttpRequest; import org.springframework.http.server.ServerHttpResponse; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;ControllerAdvice public class ResponseAdvice implements ResponseBodyAdvice {/*** 内容是否需要重写通过此方法可以选择性部分控制器和方法进行重写* 返回 true 表示重写*/Overridepublic boolean supports(MethodParameter returnType, Class converterType) {return true;}/*** 方法返回之前调用此方法*/Overridepublic Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType,Class selectedConverterType, ServerHttpRequest request,ServerHttpResponse response) {// 设置跨域response.getHeaders().set(Access-Control-Allow-Origin, *);return body;} }此实现方式也是全局跨域它对整个项目中的所有接口有效。原理分析为什么通过以上方法设置之后就可以实现不同项目之间的正常交互呢这个问题的答案也很简单我们之前在说跨域时讲到“跨域问题本质是浏览器的行为它的初衷是为了保证用户的访问安全防止恶意网站窃取数据”那想要解决跨域问题就变得很简单了只需要告诉浏览器这是一个安全的请求“我是自己人”就行了那怎么告诉浏览器这是一个正常的请求呢只需要在返回头中设置“Access-Control-Allow-Origin”参数即可解决跨域问题此参数就是用来表示允许跨域访问的原始域名的当设置为“*”时表示允许所有站点跨域访问如下图所示所以以上 5 种解决跨域问题的本质都是给响应头中加了一个 Access-Control-Allow-Origin 的响应头而已。演示项目源码https://gitee.com/mydb/springboot-examples/tree/master/spring-boot-cross总结跨域问题的本质是浏览器为了保证用户的一种安全拦截机制想要解决跨域问题只需要告诉浏览器“我是自己人不要拦我”就行。它的常见实现方式有 5 种通过注解实现局部跨域、通过配置文件实现全局跨域、通过 CorsFilter 对象实现全局跨域、通过 Response 对象实现局部跨域通过 ResponseBodyAdvice 实现全局跨域。参考 鸣谢blog.csdn.net/pjmike233/article/details/82461911是非审之于己毁誉听之于人得失安之于数。公众号Java面试真题解析面试合集https://gitee.com/mydb/interview往期推荐面试突击80说一下 Spring 中 Bean 的生命周期面试突击79Bean 作用域是啥它有几种类型面试突击78Autowired 和 Resource 有什么区别

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wordpress主题grace主题开封网站seo

原因: 判段网关的时候判127.0.0.1,所以最好改localhost 其他参考: 【计算机网络】localhost不能访问,127.0.0.1可以访问?_ping localhost和ping 127.0.0.1-CSDN博客

优秀的定制网站建设公司推广策略及推广方式

打开你的github,Setting 点击Developer settings。 点击generate new token 按照需要选择scope 生成token,以后复制下来。 给git设置token样式的remote url git remote set-url origin https://你的tokengithub.com/你的git用户名/仓库名称.git然后就可…

南阳网站优化软件企业网络管理系统有哪些

组合逻辑过程块 always_comb代表组合逻辑 always_comb过程块表示建立组合逻辑模型 always_comb if(!mode)y a b; elsey a - b;always_comb能推断出其敏感表 与通用always过程块不同,always_comb块的后面不需要指明敏感表。软件工具已经知道设计的意图是建立一个…

刷百度指数网站工作正能量励志句子

1.下载ESP8266Flasher及deauther2.1.0_1mb.bin这个固件 2.连接ESP8266模块到电脑 设备管理器可看到成功连接的ESP8266设备 3.开始刷入固件到ESP8266模块 运行ESP8266Flasher并点击Config选择固件: 配置高级选项: 点击Flash开始刷入固件,固件成功刷入如下: 按一下ESP8266模块…

衡水网站建费用网站备案信息批量查询

Vue组件库Element 1 Element介绍 vue是侧重于VM开发的,主要用于数据绑定到视图的,ElementUI就是一款侧重于V开发的前端框架,主要用于开发美观的页面的。 Element:是饿了么公司前端开发团队提供的一套基于 Vue 的网站组件库&…

工信部外国网站备案手把手教你网上开店

Re:从零开始的Vue项目搭建初始的终结与结束的开始Nodejs项目的简单测试从零开始webpack开发模式webpack编译打包后记初始的终结与结束的开始 最开始接触vue项目搭建是从vue-cli开始,模板式操作,一键搞定,几乎可以无缝进入代码开发…

素材免费下载网站毕业季网站如何做网页

〇、前言 哨兵是一个分布式系统,你可以在一个架构中运行多个哨兵进程,这些进程使用流言协议来接收关于Master主服务器是否下线的信息,并使用投票协议来决定是否执行自动故障迁移,以及选择哪个Slave作为新的Master。 文章目录 〇、…

网站怎么可以做视频播放免费企业名录数据

目录 一、影院管理项目 二、外观模式 (一)基本介绍 (二)原理类图 (三)解决影院管理 (四)注意事项和细节 (五)外观模式在MyBatis框架应用的源码分析 一…

浙江建设人才网官网seo排名优化技术

在面向对象编程中,SOLID 是五个设计原则的首字母缩写,旨在使软件设计更易于理解、灵活和可维护。这些原则是由美国软件工程师和讲师罗伯特C马丁(Robert Cecil Martin)提出的许多原则的子集,在他2000年的论文《设计原则与设计模式》中首次提出…

为什么网站在本地看没问题上传之后没有内容呢?网站上二维码怎么做的

Inno Setup介绍 Inno Setup 是一个免费的 Windows 安装程序制作软件。第一次发表是在 1997 年,现在已经更新到Inno Setup 6了。Inno Setup是一个十分简单实用的打包小工具,可以按照我们自己的意愿设置功能,稳定性也很好。 官方网址&#xff1…

电商网站html模板wordpress 显示不全

题目链接: http://bailian.openjudge.cn/tm2019/F/ 2236 -- Wireless Network 题面描述: 思路: 这题开了10s,所以可以暴力点,每次修复一个点,就将该点相连的那些边建出来,总的时间复杂度为: O(nm)。关键在于如何判定两个点是否…

网站建设项目经费的报告北京logo设计制作

华为HCIE认证考试怎么考? 前文腾科也说了HCIE认证考试的难度会比较大,具体是难在哪里呢?华为HCIE认证的考试需要考一门笔试,笔试主要是单选、多选、判断、填空、拖拽这几个题型,考试时长一般是一个半小时,…

科站网站东莞人才市场招聘官网

前言 我们在上位机开发领域也经常会碰到根据三个点求出圆的圆形、半径等信息的场景,本文就是详细的介绍如何根据三个点使用C#代码求出三点构成的圆的圆心坐标、圆半径、三点构成的圆弧的角度。 1、3点求圆分析 A、B、C三个点都是圆上的坐标点,过向量AB做中垂线,过向量AC做…

访问量大的网站选择多少流量的服务器何时帮人做淘宝网站骗钱

颜色矩(Color Moment)是一种用来描述图像颜色分布的统计特征。它可以用来衡量图像中不同颜色之间的关系,以及颜色分布的特征。常见的颜色矩包括一阶矩(Mean)、二阶矩(Variance)、三阶矩(Skewness)和四阶矩(Kurtosis)等。 颜色矩能够提供关于图像颜色分布的信息,例…

pc网站制作公司短视频剪辑培训班速成

本文转载自: http://www.cnblogs.com/AnnieKim/archive/2011/11/20/2255813.html#undefined> 这篇是为了加深记忆所写。发现,很多知识若不经过反复的琢磨和动手实践,是很难记得住的。 1) 函数指针的初始化。 函数如下: int Com…

网站注册域名免费上海网上推广

时钟管理单元(Clock Management Tile, CMT) : 即时钟管理片,是FPGA器件中一个十分重要的时钟资源。能够对内部和外部的时钟去偏斜、去抖动,同时还支持频率合成、分倍频等功能。 举例,下面这个例子数据从FIFO输出时钟频率为125MHZ,这个时钟频率可以通过…

大酒店网站源代码页面设计中为什么要有优先级排列

目录 一、html-body 二、CSS 三、JS 四、完整代码 五、效果展示 一、html-body 侧边栏的伸缩需要用户触发事件&#xff0c;这里使用button为例&#xff0c;用户点击按钮实现侧边栏的打开和关闭。 <body><!-- 按钮&#xff0c;可以用文字、图片等作为事件源&am…

做网站一般需要哪些文件夹常用软件开发平台

文章目录 前言1.在AxureRP中生成HTML文件2.配置IIS服务3.添加防火墙安全策略4.使用cpolar内网穿透实现公网访问4.1 登录cpolar web ui管理界面4.2 启动website隧道4.3 获取公网URL地址4.4. 公网远程访问内网web站点4.5 配置固定二级子域名公网访问内网web站点4.5.1创建一条固定…

四会建设局网站软件著作权含金量

前言固然运维这个职能范畴对于绝大多数人来说认知模糊&#xff0c;特别是在分布式存储领域&#xff0c;“运维”常常和“机房”“IDC”等名词相伴&#xff0c;导致很多异业者对于运维的了解停留在物理层面&#xff0c;以搬运机器、上下架服务器、管理网电等为标杆&#xff0c;好…

乐清 网站建设陈塘庄做网站公司

协程&#xff08;Coroutine&#xff09;是一种并发编程模型&#xff0c;它允许程序在单线程内实现多个独立的执行线程&#xff0c;这些线程可以非阻塞地挂起和恢复&#xff0c;以实现协作式多任务处理。协程的核心思想是让程序员能够控制执行的流程&#xff0c;而不是完全交给操…