Access to XMLHttpRequest at ‘httpxxxx‘ from origin ‘httpxxxx‘ has been blocked by CORS policy

2023-12-13 01:48

本文主要是介绍Access to XMLHttpRequest at ‘httpxxxx‘ from origin ‘httpxxxx‘ has been blocked by CORS policy,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

解决CORS跨域问题

  • 今天做前后端分离的项目时, 前端向后台发送请求发现报错: Access to XMLHttpRequest at ‘http://localhost:8082/doLogin’ from origin ‘http://localhost:8080’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
  • 问题分析: 从报错信息可以知道是由于CORS(Cross-origin resource sharing)所致
  • 解决方案
    1. SpringBoot项目解决方案

      /*** 解决异步访问跨域*/
      @Configuration
      public class CorsConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {//本应用的所有方法都会去处理跨域请求registry.addMapping("/**")//允许远端访问的域名.allowedOrigins("http://localhost:8080")//允许请求的方法("POST", "GET", "PUT", "OPTIONS", "DELETE").allowedMethods("*")//允许请求头.allowedHeaders("*");}
      }
      
    2. SpringBoot+Spring Security项目解决方案(在以上代码的基础上)

      protected void configure(HttpSecurity http) throws Exception {http.authorizeRequests()....cors().and()...
      }
      
    3. Vue-cli前端解决(新建vue.config.js并在main.js中引入)

      const proxyObj = {}
      proxyObj['/'] = {target: 'http://localhost:8085',changeOrigin: true,pathRewrite: {'^/': ''}
      }
      module.exports = {devServer: {host: 'localhost',port: 8080,proxy: proxyObj}
      }
      

延伸拓展

  1. 同源策略:
    1. 概念: 要求协议、域名以及端口要相同,才能进行请求和响应
    2. 作用: 网络请求更安全, 并且所有支持JavaScript的浏览器都支持的安全策略
  2. 如果不支持可能造成的问题
    1. 不良分子会利用登录时用户的信息进行不当操作
    2. 举例: 点击恶意链接中包含<img src="http://xxx.com/pay?xxx=xx"> , 就会把自己的重要信息泄漏.

这篇关于Access to XMLHttpRequest at ‘httpxxxx‘ from origin ‘httpxxxx‘ has been blocked by CORS policy的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/486727

相关文章

访问controller404:The origin server did not find a current representation for the target resource

ider build->rebuild project。Rebuild:对选定的目标(Project),进行强制性编译,不管目标是否是被修改过。由于 Rebuild 的目标只有 Project,所以 Rebuild 每次花的时间会比较长。 参考:资料

C#通过ACE OLEDB驱动程序访问 Access和 Excel

ACE 代表 Access Connectivity Engine。它是 Microsoft 提供的一组组件,用于访问和操作 Microsoft Access 数据库以及其他类似的文件格式,如 Excel 工作簿。ACE 主要包括以下几部分: ACE OLEDB 驱动程序:用于通过 OLE DB 提供程序访问 Access 数据库和 Excel 文件。例如,Microsoft.ACE.OLED

【0324】Postgres内核 Shared Buffer Access Rules (共享缓冲区访问规则)说明

0. 章节内容 1. 共享磁盘缓冲区访问机制 (shared disk buffers) 共享磁盘缓冲区有两套独立的访问控制机制:引用计数(a/k/a pin 计数)和缓冲区内容锁。(实际上,还有第三级访问控制:在访问任何属于某个关系表的页面之前,必须持有该关系表的适当类型的锁。这里不讨论关系级锁。) Pins 在对缓冲区做任何操作之前,必须“对缓冲区pin”(即增加其引用计数, re

基于ASP+ACCESS的教师信息管理系统

摘要 随着我国社会主义市场经济的发展和改革开放的不断深入,计算机的应用已遍及国民经济的各个领域,计算机来到我们的工作和生活中,改变着我们和周围的一切。在以前,学校用手工处理教师档案以及工资发放等繁多的工作和数据时,人手总会出现些不必要的错误和问题,特别是在查找,统计和保存方面。与此相适应,用计算机代替手工管理,是信息社会发展的必然趋势,也是我们计算机工作者的责任。教师信息管理系统开发主要包括数据

ajax xmlhttprequest responseXML的使用

前台代码: <%@ Page Title="主页" Language="C#"  AutoEventWireup="true"     CodeBehind="Default.aspx.cs" Inherits="ajax测试二._Default" %> <html> <head> <script type="text/javascript">     function getHttpObj(

ajax xmlhttprequest使用post传参数并向后台获取数据

ajax xmlhttprequest向后台传数据有两种方式,一种是直接在地址URL后面加入参数,后台用Request.QueryString来获取,另外一种是采用POST来传,send方法发送参数对,比如send("a=3&b=4"),后台用Request.Form[“a”]来获取3,同理Request.Form["b"]获取4   前台代码: <%@ Page Titl

ajax xmlhttprequest异步获取后台数据(二)

前台代码: <%@ Page Title="主页" Language="C#"  AutoEventWireup="true"     CodeBehind="Default.aspx.cs" Inherits="ajax测试二._Default" %> <html> <head> <script type="text/javascript">     function getHttpObj(

xmlhttprequest同步获取后台数据(一)

1.前台代码: <%@ Page Title="主页" Language="C#"  AutoEventWireup="true"     CodeBehind="Default.aspx.cs" Inherits="ajax测试1._Default" %> <html> <head> <script type="text/javascript">     function getXmlHtt

unable to access android sdk add-on list解决办法

mac环境,由于不小心删掉了sdk文件夹的内容,拷贝别人的文件内容过来后,发现sdkmanager不见了。 慌乱中重装了Android Studio。 打开app后发现如下提示:unable to access android sdk add-on list 解决办法: 在 Android Studio 安装目录 bin/idea.properties 文件最后追加一句 disabl

eclipse Java导入jar包提示Access restriction解决方法

在使用RXTXcomm.jar 编写串口通信程序提示错误: Access restriction: The type ‘CommPortIdentifier’ is not API (restriction on required library ‘C:\Program Files\Java\jre1.8.0_131\lib\ext\RXTXcomm.jar’) 问题原因:Eclipse 默