首页 > 其他分享 >解析前端开发中同源策略与配置代理

解析前端开发中同源策略与配置代理

时间:2024-05-31 19:29:45浏览次数:15  
标签:跨域 配置 代理 api 同源 解析 前端开发 请求

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

        在前端开发中,跨域请求是一个常见的问题。同源策略限制了浏览器中一个页面可以加载的资源只能来自相同的源,而代理配置则是解决跨域请求的一种常见方法。本文将深入探讨代理配置和同源策略的概念,并介绍如何在前端项目中正确配置代理以解决跨域请求问题。

一、同源策略

        同源策略是浏览器的一项安全机制,用于限制一个页面中加载的资源只能来自相同的源。同源策略可以防止恶意网站通过脚本访问用户的敏感数据,保护用户的隐私安全。同源策略要求资源的协议、域名和端口号都相同才能被浏览器加载,否则会触发跨域错误。

虽然同源策略对于保护用户安全至关重要,但在开发过程中,跨域请求是不可避免的。因此,我们需要通过代理配置等方法来解决跨域请求的问题。

二、使用步骤

1.配置代理

        代理配置是一种在前端开发中常用的解决跨域请求的方法。通过在前端应用中配置代理,可以将请求转发到目标服务器,绕过浏览器的同源策略限制。代理配置通常在开发环境下使用,用于将开发中的前端应用与后端服务进行连接。

在代理配置中,我们通常需要指定目标服务器的地址(target),设置是否改变请求的源(changeOrigin),以及重写请求路径(rewrite)等参数。例如,在 Vue.js 或者 React 项目中,我们可以使用 webpack-dev-server 提供的代理配置功能来实现代理。

 


2.代码实现

代码如下(示例):

  //配置代理
  server: {
    host: "0.0.0.0",// 这里指定了服务器的主机名为 0.0.0.0,表示可以通过任何 IP 地址来访问该服务器。
    proxy: {
      // 当请求的路径中包含 '/api' 时,才会走代理配置。
      "/api": {
        //获取路径中包含api的请求(只有路径中含有api的才能走配置代理)
        target: "http://localhost:8081", //后台服务所在的源
        changeOrigin: true, // 是否改变请求的源,设置为 true 后,将会把请求的源更改为目标服务器的源。
        // 重写请求路径,将路径中的 '/api' 替换为空字符串,以便请求正确的路径。
        rewrite: (path) => path.replace(/^\/api/, ""), //api替换为空字符串  / 正则  /
      },
    },
  },

2.操作步骤

以vue脚手架为示例:

1.把后端接口从 http://localhost:8080 改成 /api

2.修改配置文件


总结

        在前端开发中,代理配置和同源策略是两个重要的概念。通过合理配置代理,我们可以解决跨域请求的问题,保证前端应用与后端服务的正常通信。同时,我们也需要遵循同源策略的原则,确保用户的数据安全和隐私保护。希望本文对于理解代理配置和同源策略有所帮助,也希望读者在实际开发中能够正确应用这些知识。

标签:跨域,配置,代理,api,同源,解析,前端开发,请求
From: https://blog.csdn.net/m0_74749208/article/details/139359979

相关文章

  • 手写HTML字符串解析成对应的 AST语法树
    先看效果展示如下:HTML模版转成ast语法树后在学习之前,我们需要了解这么一个问题,为什么要将HTML字符串解析成对应的AST语法树。为什么?语法分析:HTML字符串是一种标记语言,其中包含了大量的标签、属性、文本等内容。通过解析HTML字符串,可以将其转换为更易于操作和理解的......
  • 数据可视化在智慧园区中的核心价值解析
    数据可视化在智慧园区中发挥着至关重要的价值。智慧园区是一种基于物联网、大数据、云计算等先进技术的现代化管理模式,旨在通过智能化手段提升园区的管理效率、服务水平和用户体验。而数据可视化作为数据处理和展示的重要工具,正是智慧园区实现这些目标的关键。首先,数据可视化能......
  • 5分钟明白LangChain 的输出解析器和链
    本文介绍LangChain的输出解析器OutputParser的使用,和基于LangChain的LCEL构建链。1.输出解析器OutputParser1.1、为什么需要OutputParser常规的使用LangChain构建LLM应用的流程是:Prompt输入、调用LLM、LLM输出。有时候我们期望LLM给到的数据是格式化的数据,方便做后......
  • 深入解析C#中的模式匹配:简洁高效的功能探索
    模式匹配是编程领域中一种强大的工具,用于检测表达式是否符合特定条件,C#通过一系列丰富且灵活的模式表达式与语句,极大地简化了这一过程。本文将逐一剖析C#提供的模式匹配特性,揭示其背后的简洁逻辑与强大功能。C#模式匹配核心组件C#模式匹配围绕两个基本构建块展开:表达式/语句和......
  • JMeter源码解析之SplashScreen.java
    JMeter源码解析之SplashScreen.java完结SplashScreen.java主要作用JMeterGUI启动加载界面。文件路径路径地址:…\apache-jmeter-5.1\src\core\org\apache\jmeter\SplashScreen.java关于SplashScreen内容中的代码解析packageorg.apache.jmeter;importjava.awt.*;......
  • JMeter源码解析之NewDriver.java(一)
    JMeter源码解析之NewDriver.java(一)NewDriver.java主要作用JMeter程序入口:JMeter的主类-设置初始类路径和加载程序。文件路径路径地址:…\apache-jmeter-5.1\src\core\org\apache\jmeter\NewDriver.java文章重点关于static内容中的代码解析详细的解释请关注代码中的解释......
  • 抓包神器Charles:解析网络数据传输的秘密
    简介Charles是一款跨平台的代理工具。Mac、window、linux都可以使用。它通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络数据包的截取和分析。Charles主要的功能包括:支持SSL代理支持流量控制支持重发网络请求,方便后端调......
  • HTML、DOM 和 BOM:深入解析网页加载和渲染过程
    在网页开发中,HTML、DOM和BOM是三个关键但各自不同的概念,它们在网页加载和渲染过程中紧密协作。本文将深入探讨这三个概念及其协作机制,帮助你更好地理解现代网页的工作原理。什么是HTML?HTML(HyperTextMarkupLanguage)是用于描述网页结构的标记语言。它通过标签(如<div>......
  • 前端开发(2)--HTML常用的标签
    100编程书屋_孔夫子旧书网HTMl的标签可以分为单个标签和成对标签。单个标签:html4规定单个标签要有一个/表示结尾,html5则不用<!--单个标签--><meta><!--成对标签--><div></div>以下是HTMl中常用的一些标签div标签div标签主要用来将相关的内容组合到一块,就......
  • 【源码】Spring Data JPA原理解析之Repository自定义方法命名规则执行原理(二)
     SpringDataJPA系列1、SpringBoot集成JPA及基本使用2、SpringDataJPACriteria查询、部分字段查询3、SpringDataJPA数据批量插入、批量更新真的用对了吗4、SpringDataJPA的一对一、LazyInitializationException异常、一对多、多对多操作5、SpringDataJPA自定义......