跨域的出现以及解决

1,跨域的产生

跨域: 指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是
浏览器对 javascript 施加的安全限制
同源策略 :是指协议,域名,端口都要相同,其中有一个不同都会产生跨域;

2,跨域流程

3,解决跨域

(一)使用nginx部署为同一域

(二)配置当次请求允许跨域

添加响应头
• Access-Control-Allow-Origin :支持哪些来源的请求跨域
• Access-Control-Allow-Methods :支持哪些方法跨域
• Access-Control-Allow-Credentials :跨域请求默认不包含 cookie ,设置为 true 可以包含
cookie
• Access-Control-Expose-Headers :跨域请求暴露的字段
• CORS 请求时, XMLHttpRequest 对象的 getResponseHeader() 方法只能拿到 6 个基本字段:
Cache-Control Content-Language Content-Type Expires Last-Modified Pragma 。如
果想拿到其他字段,就必须在 Access-Control-Expose-Headers 里面指定。
• Access-Control-Max-Age :表明该响应的有效时间为多少秒。在有效时间内,浏览器无
须为同一请求再次发起预检请求。请注意,浏览器自身维护了一个最大有效时间,如果
该首部字段的值超过了最大有效时间,将不会生效。
package com.atguigu.gulimall.gateway.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.CorsWebFilter;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
/*springboot为我们提供了方法,只需要把CorsWebFilter对象放进容器就能解决跨域*/
@Configuration
public class CorsConfig {@Beanpublic CorsWebFilter corsWebFilter(){UrlBasedCorsConfigurationSource source =new UrlBasedCorsConfigurationSource();CorsConfiguration corsConfiguration = new CorsConfiguration();//真正的跨域配置corsConfiguration.addAllowedHeader("*"); //允许那些请求头进行跨域  *表示任意头corsConfiguration.addAllowedMethod("*"); //允许那些请求方式进行跨域  *表示任何请求方式corsConfiguration.addAllowedOrigin("*"); //允许那些请求来源进行跨域corsConfiguration.setAllowCredentials(true); //是否允许携带cookie进行跨域//任意路径都进行跨域配置source.registerCorsConfiguration("/**",corsConfiguration);return new CorsWebFilter(source);}
}

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

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

相关文章

【真机Bug】异步加载资源未完成访问单例导致资源创建失败

1.错误表现描述 抽卡时,10抽展示界面为A。抽取内容可能是整卡或者碎片,抽到整卡,会有立绘展示和点击详情的按钮。点击详情后出现详情页B。【此时界面A预制体被销毁,卡片数据进入数据缓存池】点击页面B的返回按钮,单例…

第1篇 Linux Docker安装rabbitmq

Docker安装RabbitMq 1、搜索rabbitmq镜像 docker search rabbitmq2、下载rabbitmq镜像 docker pull rabbitmq3、运行rabbitmq服务 docker run -d --name rabbitmq --restart always -p 15672:15672 -p 5672:5672 rabbitmq4、访问rabbitmq http://192.168.1.x:15672 5、rab…

ISO_IEC_18598-2016自动化基础设施管理(AIM)系统国际标准解读(一)

██ ISO_IEC_18598-2016是什么标准? ISO/IEC 18598国际标准是由ISO(国际标准化组织)/IEC(国际电工委员会)联合技术委员会1-信息技术的第25分委员会-信息技术设备互连小组制定的关于信息基础设施自动化管理的国际标准&…

程序员是如何看待“祖传代码”的?

目录 ​编辑 程序员是如何看待“祖传代码”的? 一、什么是“祖传代码”? 二、“祖传代码”的利弊 1. 可以节省开发成本 2. 可能引入安全隐患 3. 可能增加系统的维护难度 三、祖传代对程序员的影响 1. 丰富程序员的技能和知识 2. 提高程序员的创…

Kubernetes/k8s的核心概念

一、什么是 Kubernetes Kubernetes,从官方网站上可以看到,它是一个工业级的容器编排平台。Kubernetes 这个单词是希腊语,它的中文翻译是“舵手”或者“飞行员”。在一些常见的资料中也会看到“ks”这个词,也就是“k8s”&#xff…

Linux shell中如何获取当前目录

Linux shell中获取当前目录 当前目录 每当你在终端进行操作时,你都会有一个当前工作目录。 使用pwd来判定当前目录在文件系统内的确切位置。 [rootlocalhost ~]# pwd /root在shell中也可以使用pwd来获取当前目录,并赋值给变量。 test.sh #!/bin/bas…

[linux] linux 常见信号以及使用信号时注意事项

信号是一种进程间通信的方式,进程间通信的方式还包括共享内存,socket,管道,消息队列。信号与其它方式是有区别的,其它通信方式很灵活,可以详细定义自己的消息内容;而信号没有这么灵活&#xff0…

7款炫酷的前端动画特效分享(二)(附效果图及在线演示)

分享7款好玩的前端动画特效 其中有CSS动画、SVG动画、js小游戏等等 下方效果图可能不是特别的生动 那么你可以点击在线预览进行查看相应的动画特效 同时也是可以下载该资源的 jQuery拉开帷幕特效 基于jQuery实现的帷幕特效 点击右侧拉条 可以实现帷幕的收起也展开 非常的炫酷…

Doris实战——金融壹账通指标中台的应用实践

目录 前言 一、业务痛点 二、早期架构挑战 三、架构升级 四、一体化指标数据平台 4.1 构建指标体系 4.2 构建指标平台功能 五、Doris指标应用实践 六、未来规划 原文大佬的这篇指标中台的应用实践有借鉴意义,这里摘抄下来用作学习和知识沉淀。 前言 在搭建…

第四十七回 一丈青单捉王矮虎 宋公明二打祝家庄-强大而灵活的python装饰器

四面全是埋伏,宋江和众人一直绕圈跑不出去。正在慌乱之时,石秀及时赶到,教大家碰到白杨树就转弯走。走了一段时间,发现围的人越来越多,原来祝家庄以灯笼指挥号令。花荣一箭射下来红灯龙,伏兵自己就乱起来了…

【DAY07 软考中级备考笔记】数据结构:线性结构,数组矩阵和广义表

数据结构:线性结构,数组矩阵和广义表 3月2日 – 天气:晴 1. 线性表的定义和存储方式 > 这一部分只需要掌握下面的两点即可: > > * 采用顺序存储和链式存储的特点 > * 单链表的插入和删除操作 2. 栈和队列 > 这里需…

Godot自定义控件样式语法解析

前言 本篇原始文章写于2023年8月7日,存储在我的语雀文档中。但是语雀分享有诸多不便,为了让更多Godoter更轻松的搜到和看到,就转过来了。 这个项目我上传了Github,后续会贴上链接。 概述 Godot控件体系存在的问题之一就是样式无…