首页 > 其他分享 >前后端跨域竟然不需要加注解!

前后端跨域竟然不需要加注解!

时间:2024-02-06 13:12:17浏览次数:26  
标签:浏览器 跨域 前端 前后 nginx 同源 注解 localhost

众所周知前后端跨域一直是让人头疼的问题。

那什么是跨域呢?

出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的。javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)

我所遇到的跨域问题

我的前端是通过vscode下载的Live Server运行的
image

因为前端的运行地址是http://127.0.0.1:5501/login.html
我要发起请求http://localhost:8080/user/login去实现登录,就会报下列错误

image

怎么解决呢?废话不多说,直接上干货

方法一:给controller加@CrossOrigin注解

这种方法是我知道的最简单的解决跨域的问题,但是他还是要依赖于vscode的live serve,而且这个方法太简单了,没有一点挑战性。
下面介绍一个大杀器

正文开始

Nginx来解决前后端跨域问题

1、首先去官网下载一个Nginx

https://nginx.org/en/download.html

2、直接解压

image

3、开始配置,打开conf文件夹,选择nginx.conf

打开后你会发现有很多行,不用管,大多都是注释的。
而你只需要关注我红色框起来的
一定要是第一个server里面配置
listen设置监听端口号,要设置空余的端口号
server_name就是你的ip地址,localhost或者127.0.0.1都可以
image

4、配置前端

image
alias就是你的前端项目地址
index就是打开的页面
这就相当于把前端项目部署到了nginx上面

5、配置后端

image
proxy_pass就是你后端服务器地址,
/api/就是待会前端里面写请求的前缀,它能够转发到你的后端

6、保存退出,双击启动nginx

image
你也可以使用命令
image

7、然后就可以去浏览器输入localhost:90,他就会访问到你的项目

image
登录成功了!!
image
原先的请求http://localhost:8080/user/login
加入了nginx的请求:api/user/login
image

跨域问题解决成功,快去试试吧

标签:浏览器,跨域,前端,前后,nginx,同源,注解,localhost
From: https://www.cnblogs.com/cmhcmx/p/18009452

相关文章

  • Java-10注解与反射
    注解注解(Annotation)也被称为元数据(Metadata),用于修饰包、方法、属性、构造器、局部变量等数据信息。注解不影响程序逻辑,但注解可以被编译或运行。在JavaSE中,注解的使用目的比较简单,例如标记过时的功能,忽略警告等。在JavaEE中注解占据了更重要的角色,例如用来配置应用程序的......
  • 谷歌新版本跨域错误深度剖析与解决:request client is not a secure context and the
    原文地址:https://blog.csdn.net/Flywithdawn/article/details/128253604 快速解决: ======================================================最近在测试http服务时,谷歌浏览器报了以下错误“Therequestclientisnotasecurecontextandtheresourceisinmore-privat......
  • Java之解决跨域
    跨域问题是浏览器为了保护用户的信息安全,实施了同源策略(Same-OriginPolicy),即只允许页面请求同源(相同协议、域名和端口)的资源,当JavaScript发起的请求跨越了同源策略,即请求的目标与当前页面的域名、端口、协议不一致时,浏览器会阻止请求的发送或接收。......
  • 关于 AJAX 请求跨域问题在 Vue 项目中的解决方式
    0.前言关于域,sry刚刚新建文件夹,写好了就换过来;此文为88岁高龄、入门级前端初心者专用笔记;暂时只关心AJAX请求受同源策略的影响及在Vue项目中的解决方式捏;1.必要性1.0你需要知道(1)协议、域名、端口都相同,才为同源;(2)浏览器报跨域错误,并不是服务器没有返回,而......
  • 进制转换(二、八、十六进制之间的转化和进制前后缀)
    本篇默认你至少掌握了十进制(整数及小数)与二进制之间的互相转换,如果还不太熟悉,可以看看我的这篇博客《二进制详解——从18元的生椰拿铁入手理解二进制》哦~!目录二进制↔️八进制二进制↔️十六进制八进制↔️十六进制进制的前后缀二进制↔️八进制八进制的数码是0-7,最大的7是......
  • Spring-xml(+注解)方式整合第三方的框架-mybatis
    1)不需要自定义命名空间:MyBatisSpring整合Mybatis的步骤如下://原始配置<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.49</version></dependency><dependenc......
  • 使用annotationForMap实例化注解
    sun.reflect.annotation.AnnotationParser#annotationForMap/***Returnsanannotationofthegiventypebackedbythegiven*member->valuemap.*/publicstaticAnnotationannotationForMap(finalClass<?extendsAnnotation>......
  • 【Azure Function】Function本地调试时遇见跨域问题(blocked by CORS policy)
    问题描述在本地调试AzureFunction时,遇见了跨域问题:AccesstoXMLHttpRequestat'http://localhost:7071/api/HttpTriggerToken?tenantId=b7f6f99f-3045-412a-8828-b3044070857e&documentId=6a8ffc27-026f-498e-9936-f6c55db558e5&userId=test-user&userName=Test+User......
  • 【Azure Function】Function本地调试时遇见跨域问题(blocked by CORS policy)
    问题描述在本地调试AzureFunction时,遇见了跨域问题:AccesstoXMLHttpRequestat'http://localhost:7071/api/HttpTriggerToken?tenantId=b7f6f99f-3045-412a-8828-b3044070857e&documentId=6a8ffc27-026f-498e-9936-f6c55db558e5&userId=test-user&userName=Test+User&......
  • 关于Spring5新增的Indexed注解
    前言如果我们应用中使用@ComponentScan注解扫描的package包含的类很多的时候,Spring解析耗时就会很多,相应的应用启动时间也就更长,Spring5.0引入了一个新的注解@Indexed,它可以为Spring的模式注解添加索引,以提升应用启动性能。使用<dependency><groupId>org.springframewor......