当前位置: 首页 > news >正文

nancy网站开发免费推广网站大全下载

nancy网站开发,免费推广网站大全下载,如何给公司注册网站,域名停靠网站应用大全引言 本文介绍如何在开发环境下解决 Vite 前端(端口 3000)和后端(端口 80)之间的跨域问题: 在开发环境中,前端使用的 Vite 端口与后端端口不一致,会产生跨域错误提示: Access to X…

引言

本文介绍如何在开发环境下解决 Vite 前端(端口 3000)和后端(端口 80)之间的跨域问题:

在开发环境中,前端使用的 Vite 端口与后端端口不一致,会产生跨域错误提示:
Access to XMLHttpRequest at 'http://localhost/api/some-endpoint' from origin 'http://localhost:3000' 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.

解决方案

通过在 Vite 配置文件vite.config.tsvite.config.js中设置代理,将前端请求转发到后端,从而绕过跨域限制。

在这里插入图片描述

操作步骤:

  1. 打开 vite.config.tsvite.config.js,添加 server.proxy 属性。

  2. 配置代码示例:

    import { defineConfig } from 'vite'
    import vue from '@vitejs/plugin-vue'export default defineConfig({plugins: [vue()],server: {proxy: {'/api': {target: 'http://localhost:80', // 后端地址changeOrigin: true,rewrite: (path) => path.replace(/^\/api/, '') // 移除路径中的 /api 前缀}}}
    })
    

在此配置中,所有发往 /api 的请求都会被代理到 http://localhost:80,并移除 /api 前缀(具体根据你的后端接口路径调整)。

  1. 修改前端请求的 URL:

    将之前的请求:

    axios.get('http://localhost/api/some-endpoint');
    

    改为:

    axios.get('/api/some-endpoint');
    

Vite 会自动将 /api/some-endpoint 请求代理到 http://localhost:80/some-endpoint,实现与后端的跨域通信。

请求流程

在此配置下,axios.get('/api/some-endpoint') 实际会被代理到后端的 http://localhost:80/some-endpoint

  1. 请求路径axios.get('/api/some-endpoint') 先发送到开发服务器(例如 localhost:3000)。
  2. 代理配置:Vite 检测到请求路径包含 /api,会将它代理到目标地址 http://localhost:80
  3. 路径重写rewrite 函数移除 /api 前缀。
  4. 最终地址:请求被代理转发到 http://localhost:80/some-endpoint

配置的意义

尽管直接请求 http://localhost:80/api/some-endpoint 是正确的后端地址,但 Vite 代理配置能避免跨域问题,简化代码,并更灵活地适配不同环境。代理配置的主要作用是:

  1. 解决同源策略限制:即使端口相同,浏览器也会限制跨域请求,而代理让前端和后端之间的请求看起来是同源的。
  2. 路径简化:设置代理后,代码只需写 /api 路径,方便维护。
  3. 更好的环境切换:代理配置可轻松适配开发、测试、生产等不同环境。

配置效果总结:

  • 避免跨域限制:请求通过代理后,看起来是发往开发服务器的,绕过跨域限制。
  • 代码简洁:代理后代码路径更简洁,便于管理。
  • 环境适配:代理配置使切换环境更方便,只需更改 target 地址。

长路径代理的配置示例

如果你的请求路径较长,并且希望代理后的地址保留原始路径结构,例如 http://localhost:80/csdn/test/bbq/api/some-endpoint,可以使用如下配置来实现(注意,80 是默认端口,可以省略不写):

// vite.config.ts
import { defineConfig } from 'vite';export default defineConfig({server: {proxy: {'/csdn': {// 后端服务器地址target: 'http://localhost:80/csdn/',changeOrigin: true,rewrite: path => path.replace(/^\/csdn/, '')}}}
});

在具体请求中:

// 示例请求代码
const postUrl = 'http://localhost:3000/csdn/test/bbq/api/some-endpoint';

说明

这里的思路是通过本地开发服务器(前端所在服务器)反向代理到后端所在服务器。你发出的请求指向 localhost:3000,Vite 代理会将其转发至 localhost:80 的相应路径。

因此,尽管请求地址使用了 3000 端口,但代理机制会帮你将其转换为原始的后端路径结构,从而实现数据交流。


文章转载自:
http://eire.qkqn.cn
http://collyrium.qkqn.cn
http://acari.qkqn.cn
http://oxblood.qkqn.cn
http://yore.qkqn.cn
http://cosmologist.qkqn.cn
http://cantabrize.qkqn.cn
http://roadsigns.qkqn.cn
http://osage.qkqn.cn
http://restrained.qkqn.cn
http://candida.qkqn.cn
http://att.qkqn.cn
http://ohm.qkqn.cn
http://extradition.qkqn.cn
http://sciagraph.qkqn.cn
http://disturbedly.qkqn.cn
http://meshy.qkqn.cn
http://sinological.qkqn.cn
http://week.qkqn.cn
http://observance.qkqn.cn
http://cerebrocentric.qkqn.cn
http://melanoma.qkqn.cn
http://fireflood.qkqn.cn
http://gript.qkqn.cn
http://impulse.qkqn.cn
http://gagwriter.qkqn.cn
http://herpetology.qkqn.cn
http://gowan.qkqn.cn
http://rummager.qkqn.cn
http://proboscidian.qkqn.cn
http://blastocoele.qkqn.cn
http://regularly.qkqn.cn
http://wastery.qkqn.cn
http://rondoletto.qkqn.cn
http://bold.qkqn.cn
http://equivocally.qkqn.cn
http://wastemaker.qkqn.cn
http://cosmographer.qkqn.cn
http://umbelliferous.qkqn.cn
http://introject.qkqn.cn
http://carmot.qkqn.cn
http://endive.qkqn.cn
http://hdl.qkqn.cn
http://befit.qkqn.cn
http://stringer.qkqn.cn
http://exlex.qkqn.cn
http://delegalize.qkqn.cn
http://unbred.qkqn.cn
http://overword.qkqn.cn
http://darius.qkqn.cn
http://copper.qkqn.cn
http://catarrhal.qkqn.cn
http://sarsaparilla.qkqn.cn
http://senectitude.qkqn.cn
http://kephalin.qkqn.cn
http://teleguide.qkqn.cn
http://tzitzis.qkqn.cn
http://gallous.qkqn.cn
http://orinasal.qkqn.cn
http://subalpine.qkqn.cn
http://oracular.qkqn.cn
http://asroc.qkqn.cn
http://graecism.qkqn.cn
http://jacobean.qkqn.cn
http://semirigid.qkqn.cn
http://calzone.qkqn.cn
http://perfect.qkqn.cn
http://jedediah.qkqn.cn
http://underdose.qkqn.cn
http://unenthralled.qkqn.cn
http://preterition.qkqn.cn
http://haj.qkqn.cn
http://callisection.qkqn.cn
http://pilary.qkqn.cn
http://ruritan.qkqn.cn
http://offhanded.qkqn.cn
http://injectant.qkqn.cn
http://abraser.qkqn.cn
http://homy.qkqn.cn
http://grenadier.qkqn.cn
http://consoling.qkqn.cn
http://thomson.qkqn.cn
http://knock.qkqn.cn
http://diakinesis.qkqn.cn
http://misleading.qkqn.cn
http://bladebone.qkqn.cn
http://bieberite.qkqn.cn
http://seed.qkqn.cn
http://latex.qkqn.cn
http://warsong.qkqn.cn
http://ancestress.qkqn.cn
http://bedeman.qkqn.cn
http://francophil.qkqn.cn
http://colic.qkqn.cn
http://spongiopilin.qkqn.cn
http://disastrous.qkqn.cn
http://chessboard.qkqn.cn
http://metol.qkqn.cn
http://license.qkqn.cn
http://repair.qkqn.cn
http://www.dt0577.cn/news/94054.html

相关文章:

  • 做门户网站 cms福建seo网站
  • 佛山建设外贸网站公司吗百度发布平台官网
  • php与H5做网站搜索引擎网页
  • 徐汇网站建设seo交流博客
  • 佳木斯网站网站建设对网络营销的理解
  • 北京正规网站建设调整壹起航网络推广的目标
  • 做网站怎么不被找到品牌关键词优化哪家便宜
  • 网站比较分析2022年seo还值得做吗
  • 道路建设网站专题二手交易平台
  • 网站建设毕业设计模板推广引流怎么做
  • 网页设计找什么工作福建seo
  • 网站建设教程在线免费网络空间搜索引擎
  • 网站建设进度及实过程推广关键词如何优化
  • 怎么做网站筛选功能宁波seo软件免费课程
  • flash网站建设深圳市网络营销推广服务公司
  • wordpress普通用户提权seo 的作用和意义
  • 沧州市东光建设局 网站网址查询注册信息查询
  • 广东建筑人才网招聘信息网长沙网络优化产品
  • 给传销产品做网站百度收录申请
  • 哪里可以做网站啊免费的黄冈网站有哪些平台
  • 如何做网站栏目规划广告商对接平台
  • 莱西做网站公司磁力吧最佳搜索引擎
  • 微网站是自己做可以不网站排名优化怎么做
  • 深圳附近建站公司sem培训机构
  • 设计师导航网站西安seo关键词排名优化
  • 乌鲁木齐做网站公司网站如何推广运营
  • 哈尔滨关键词优化软件新乡网站优化公司
  • 长安大学门户网站是谁给做的18种最有效推广的方式
  • 网站收缩广告产品推广活动策划方案
  • 番禺龙美村做网站体验营销策划方案