百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

浏览器的跨域问题该怎么解决?

off999 2025-02-07 18:44 39 浏览 0 评论

浏览器判断是跨域请求会在请求头上添加origin,表示这个请求来源哪里。比如:

Plaintext
GET / HTTP/1.1
Origin: http://localhost:8601

服务器收到请求判断这个Origin是否允许跨域,如果允许则在响应头中说明允许该来源的跨域请求,如下:

Plaintext
Access-Control-Allow-Origin:http://localhost:8601

如果允许任何域名来源的跨域请求,则响应如下:

Plaintext
Access-Control-Allow-Origin:*

解决跨域的方法:

1、JSONP

通过script标签的src属性进行跨域请求,如果服务端要响应内容则首先读取请求参数callback的值,callback是一个回调函数的名称,服务端读取callback的值后将响应内容通过调用callback函数的方式告诉请求方。如下图:

2、添加响应头

服务端在响应头添加
Access-Control-Allow-Origin:

3、通过nginx代理跨域

由于服务端之间没有跨域,浏览器通过nginx去访问跨域地址。

1)浏览器先访问
http://192.168.101.10:8601 nginx提供的地址,进入页面

2)此页面要跨域访问
http://192.168.101.11:8601 ,不能直接跨域访问http://www.baidu.com:8601 ,而是访问nginx的一个同源地址,比如:
http://192.168.101.11:8601/api ,通过
http://192.168.101.11:8601/api 的代理去访问http://www.baidu.com:8601。

这样就实现了跨域访问。

浏览器到
http://192.168.101.11:8601/api 没有跨域

nginx到http://www.baidu.com:8601通过服务端通信,没有跨域。

我们准备使用方案2解决跨域问题。在内容管理的api工程config包下编写GlobalCorsConfig.java,

或直接从课程资料/项目工程下拷贝,

代码如下:

Java
package com.xuecheng.system.config;

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;

/**
 * @description 跨域过虑器
 * @author Mr.M
 * @date 2022/9/7 11:04
 * @version 1.0
 */
 @Configuration
 public class GlobalCorsConfig {

  /**
   * 允许跨域调用的过滤器
   */
  @Bean
  public CorsFilter corsFilter() {
   CorsConfiguration config = new CorsConfiguration();
   //允许白名单域名进行跨域调用
   config.addAllowedOrigin("*");
   //允许跨越发送cookie
   config.setAllowCredentials(true);
   //放行全部原始头信息
   config.addAllowedHeader("*");
   //允许所有请求方法跨域调用
   config.addAllowedMethod("*");
   UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
   source.registerCorsConfiguration("/**", config);
   return new CorsFilter(source);
  }
 }

此配置类实现了跨域过虑器,在响应头添加
Access-Control-Allow-Origin。

重启系统管理服务,前端工程可以正常进入http://localhost:8601,观察浏览器记录,成功解决跨域。

相关推荐

win732位系统多大(win732位系统支持多大硬盘)

您好,32位Windows7的所有版本均支持4GB内存,但32位的Windows7实际可利用的最大内存只有3.25GB左右。64位的Windows7家庭普通版能支持8GB内存,家庭高级版能支持1...

win10修改电脑开机密码(win10修改电脑开机密码在哪里)

win10系统这样重设开机密码:具体的步骤如下:1、点击Win10的“开始”按钮,继续点击“设置”选项。2、点击“账户”选项。3、点击左侧的“登录选项”,接着在“密码”选项下点击“更改”。4、首先会弹...

办公软件office下载(office办公软件正版下载)

office字体都变成了英文是因为设置了英文模式。具体的解决步骤如下:我们需要准备的材料分别是:电脑、Word文档。1、首先我们打开Word文档,点击打开左上角的文件中的“选项”。2、然后我们在弹出来...

windows打开注册表(windows打开注册表编辑器的命令)

如果装了杀毒软件,并且开了注册表保护功能,关闭此功能,如果关闭后可以正常写入了,说明是这个问题造成的,之所以打开后不能写入了,是由于注册表保护功能的提示项目被关闭了,打开设置项目,打开提示即可,这样以...

win7本地组策略编辑器怎么打开

1、在桌面上新建一个记事本文件,随后双击打开它将下方的代码全部复制粘贴进去:  @echooff  pushd"%~dp0"  dir/bC:\Windows\servicing\Packag...

笔记本连接不上无线网(笔记本连接不上无线网络)

1、笔记本电脑连不上wifi原因有很多,如果是所有WIFI都连接不上,那就是电脑自身设置出错。2、方法一:电脑连不上wifi,图标会有黄色叹号,在右下角右键点击无线wifi图标,再点击打开网络和共享中...

国内杀毒软件(国内杀毒软件有哪些完整名单)

小米手机自带的安全中心中就有病毒扫描功能,可能小米与360不太兼容,不过我觉得小米自带的杀毒也可以的,不用再单独下载一个杀毒软件了,我觉得是软件问题,因为有的软件手机是不支持的,强行安装后就会出现启动...

tplink18r18e如何设置(tplink19216811路由器设置)

TL-H28R路由器恢复了出厂设置,现在要设置其连接宽带上网,需要经过以下几个步骤:1、TL-H28R路由器与TL-H28E扩展器注册;将TL-H28R路由器和TL-H28E扩展器分别插到电源插座上,...

win7现在还能用吗(win7现在还能用么2021年)
win7现在还能用吗(win7现在还能用么2021年)

WINDOWS7系统还可以用多久?什么时候会被淘汰?先不说WINDOWS7系统可以用多久,先说说XP系统到目前为止可以在系统之家上搜索,并且下载,只要硬件支持,XP系统都可以继续在使用,也不用担心,XP系统在使用的过程中系统出现崩溃或者...

2025-12-03 21:03 off999

免费下载升级(免费下载升级拖拉机两副牌80分)

以创维E530E系列为例:1、第一步:到创维社区下载官方本地升级包,将升级包放到U盘的根目录下,不能放到文件夹中否则检测不到升级包2、将U盘插入电视背后的USB接口。插上U盘后,电视会检测到U盘,选择...

win10家庭版是多少位(win10家庭版是32位吗)

win10家庭版包含32位win10家庭版和64位win10家庭版。32位操作系统针对的32位的CPU设计。CPU内部寄存器和寻址总线是32位,指令集可以运行32位数据指令,也就是说一次可以提取32位...

联想投诉电话人工服务(联想总部投诉热线95539有用吗)

投诉某家联想售后服务中心的话,你可以按照以下步骤来进行操作:1.收集证据:整理好所有的证据材料,包括维修单据、交流记录、照片或视频等,以便提供给投诉部门。2.联系联想客服:首先,你可以尝试通过联想...

win7旗舰版bios设置(win7旗舰版bios设置教程)

Win7旗舰版的BIOS高级模式指的是进入计算机主板的BIOS(基本输入输出系统)设置中的一种模式,该模式提供了更高级的设置选项,可以更好地控制硬件性能和外设的功能。高级模式比标准模式更加复杂,需要进...

怎么设置自己家的wifi(怎样设置自己家的wifi)

要设置家里的WiFi,首先确保你有一个无线路由器。将路由器连接到宽带调制解调器,并通过网线连接到电脑。打开浏览器,输入路由器的默认IP地址,登录路由器的管理界面。根据路由器的说明书,设置WiFi名称(...

xp万能驱动下载(winxp万能驱动)

查看自己打印机的型号,然后去官网下载对应的驱动使用纯净版XP系统的时候还要安装声卡驱动,当我们对这个方面的驱动都完全的安装好了之后,这样才可以更好地保障今后的使用。电脑之中,只是安装系统还是无法使用的...

取消回复欢迎 发表评论: