IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> No ‘Access-Control-Allow-Origin‘ header is present on the requested resource. -> 正文阅读

[JavaScript知识库]No ‘Access-Control-Allow-Origin‘ header is present on the requested resource.

前后端分离时,使用html发送ajax请求从后端获取数据时

出现的BUG

Access to XMLHttpRequest at 'http://localhost:8888/employees/list' from origin 'http://localhost' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
?
GET http://localhost:8888/employees/list net::ERR_FAILED

其中访问的过程是:

浏览器先访问前端服务器,前端服务器(假设端口号为8080)返回页面

浏览器再访问页面的时候发现页面中的 ajax 请求,再去访问接口服务器(假设端口号为8888),此时是跨域请求,浏览器在接收响应时发现接口服务器返回的没有Access-Control-Allow-Origin这个头,就认为接口服务器不允许访问,因此报这个错误。

跨域访问:服务器A 与 服务区B 相互访问,如果使用协议,ip,端口之中有一个不同时,称之为跨域访问。

其中XMLHttpRequestajax的底层实现

这个错误意思是服务器没有响应Access-Control-Allow-Origin这个头回来,也就是服务器不允许访问。

解决思路:

只需要告诉浏览器,当前服务器允许其他服务器进行跨域访问

只需要在springboot的启动类上,让它实现

implements WebMvcConfigurer

然后再加一个 bean

    @Bean
 ? ?public WebMvcConfigurer corsConfigurer() {
 ? ? ? ?return new WebMvcConfigurer() {
 ? ? ? ? ? ?@Override
 ? ? ? ? ? ?//重写父类提供的跨域请求处理的接口
 ? ? ? ? ? ?public void addCorsMappings(CorsRegistry registry) {
 ? ? ? ? ? ? ? ?//添加映射路径
 ? ? ? ? ? ? ? ?registry.addMapping("/**")
 ? ? ? ? ? ? ? ? ? ? ? ?//放行哪些原始域
 ? ? ? ? ? ? ? ? ? ? ?  .allowedOriginPatterns("*")
 ? ? ? ? ? ? ? ? ? ? ? ?//是否发送Cookie信息
 ? ? ? ? ? ? ? ? ? ? ?  .allowCredentials(true)
 ? ? ? ? ? ? ? ? ? ? ? ?//放行哪些原始域(请求方式)
 ? ? ? ? ? ? ? ? ? ? ?  .allowedMethods("GET", "POST", "PUT", "DELETE","OPTIONS")
 ? ? ? ? ? ? ? ? ? ? ? ?//放行哪些原始域(头部信息)
 ? ? ? ? ? ? ? ? ? ? ?  .allowedHeaders("*")
 ? ? ? ? ? ? ? ? ? ? ? ?//暴露哪些头部信息(因为跨域访问默认不能获取全部头部信息)
 ? ? ? ? ? ? ? ? ? ? ?  .exposedHeaders("Header1", "Header2");
 ? ? ? ? ?  }
 ? ? ?  };
 ?  }

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-09 11:39:18  更:2021-09-09 11:41:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 20:31:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计