vue.config.js跨域问题解决

news/2024/12/22 0:02:02/

讲解视频

问题背景

目标地址:
在这里插入图片描述
而当前项目启动是http,协议名不同,所以跨域了

解决步骤和解答

1. 新建vue.config.js文件

2. 添加如下代码:

一般目标路径target写 域名 就可以了

在这里插入图片描述

但其实,写路径也可以,不写路径也可以,没有强制的要求

  • 写路径,就要替换
    在这里插入图片描述

  • 不写路径就不用替换

3. 配置好后,修改访问方式

修改前:
在这里插入图片描述修改后:

在这里插入图片描述

重写域名pathRewrite,指的是把
在这里插入图片描述里面的api替换成空,而不是目标路径尾部的api换成空

  • 修改了,需要替换的情况
    在这里插入图片描述

  • 没修改,不需要替换的情况
    在这里插入图片描述
    明白了这一点,我的项目也可以替换成:
    在这里插入图片描述

记录一下自己的疑惑(跨域问题)

代码介绍

vite.config.js 配置代理服务器

  server: {proxy: {'/tyqw': {//   '/api/v1/services/aigc/text-generation/generation': {// target: 'https://dashscope.aliyuncs.com' // 目标服务器地址// target: 'http://localhost:3000' // 目标服务器地址target: 'https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation/', // 目标服务器地址changeOrigin: true, // 是否改变源地址rewrite: (path) => path.replace(/^\/tyqw/, '') // 重写路径},'/xfxh': {//   '/api/v1/services/aigc/text-generation/generation': {// target: 'https://dashscope.aliyuncs.com' // 目标服务器地址// target: 'http://localhost:3000' // 目标服务器地址target:'https://spark-api.xf-yun.com/v1.1/chat?authorization=YXBpX2tleT0nMjhlNDIwNzBhOWZjNTIzMjgyMjRjYjQwZGEzYjdiZTYnLCBhbGdvcml0aG09J2htYWMtc2hhMjU2JywgaGVhZGVycz0naG9zdCBkYXRlIHJlcXVlc3QtbGluZScsIHNpZ25hdHVyZT0nMzBuU1ByMjZvZHpRa2YrdVdLdC8rb3BPZ2Jzd1FSWXlzVjRrd3ExQTJERT0n&date=Sun%2C+31+Mar+2024+09%3A29%3A25+GMT&host=127.0.0.1%3A5173', // 目标服务器地址changeOrigin: true, // 是否改变源地址rewrite: (path) => path.replace(/^\/tyqw/, '') // 重写路径}}}

然后修改请求地址

 .post('tyqw', data, config)// .post('/tyqw', data, config)//   '/api/v1/services/aigc/text-generation/generation': {.then((response) => {

问题1:.post(‘tyqw’, data, config)

.post('tyqw', data, config).post('/tyqw', data, config)

这两种写法都可以吗,为什么

在发送网络请求时,.post('tyqw', data, config).post('/tyqw', data, config) 这两种写法的含义是不同的,主要取决于你的应用程序的基本路径和路由设置。

  1. .post('tyqw', data, config): 这种写法是相对路径的写法,表示发送 POST 请求到当前页面的基本路径下的 tyqw 路径。如果你的当前页面的基本路径为 http://example.com/myapp/,那么这个请求实际上是发送到 http://example.com/myapp/tyqw

  2. .post('/tyqw', data, config): 这种写法是绝对路径的写法,表示发送 POST 请求到根路径下的 tyqw 路径。无论当前页面的路径是什么,都会发送请求到 http://example.com/tyqw

这两种写法都可以,取决于你的需求和项目的配置。使用相对路径可以使得你的代码更加灵活,而使用绝对路径可以保证请求的准确性,不会受到页面路径的影响。

需要注意的是,对于前端单页应用(SPA)等情况下,通常会使用绝对路径来发送请求,以确保路由切换时能够正确地发送请求到后端 API。

这也就是为什么我这两种写法都没有报错,因为我的路由是跟路径,所以不管是相对还是绝对路径,都是一样的

问题2: target: ‘https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation/’

target: ‘https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation/’, // 目标服务器地址
改成
target: ‘https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation’, // 目标服务器地址
会有影响吗,这两种写法有什么区别

在目标服务器地址的最后是否包含斜杠 / 会对请求产生影响,这取决于服务器的配置和预期的行为。下面是这两种写法的区别:

  1. 'https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation/':这种写法表示目标服务器地址以斜杠结尾。当发送请求时,如果请求中的路径没有指定具体的文件或资源,服务器可能会做重定向处理,将请求重定向到一个类似于 'https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation/index.html' 的具体资源上。

  2. 'https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation':这种写法表示目标服务器地址没有斜杠结尾。在这种情况下,请求将直接发送到指定的路径,不会触发重定向行为。

如果目标服务器的配置能够处理这两种情况并且行为一致,那么这两种写法不会有太大影响。但如果服务器的配置或行为有所不同,这两种写法可能会导致不同的结果。通常建议根据服务器的实际行为来选择适当的写法。


http://www.ppmy.cn/news/1424530.html

相关文章

好用的视频提取工具,轻松2步下载提取视频号视频下载

最近比较忙都没有时间更内容,罪过罪过!很多人就想知道视频号视频可以用什么工具进行下载就这么难吗?面对的目前用户对视频号理解不充分!导致不少小伙伴走了很多弯路,今天就告诉大家使用什么工具可以下载视频号视频。 微信视频号不支持下载 …

吴恩达llama课程笔记:第七课llama安全工具

羊驼Llama是当前最流行的开源大模型,其卓越的性能和广泛的应用领域使其成为业界瞩目的焦点。作为一款由Meta AI发布的开放且高效的大型基础语言模型,Llama拥有7B、13B和70B(700亿)三种版本,满足不同场景和需求。 吴恩…

使用 Meta Llama 3 构建人工智能的未来

使用 Meta Llama 3 构建人工智能的未来 现在提供 8B 和 70B 预训练和指令调整版本,以支持广泛的应用 使用 Meta AI 体验 Llama 3 我们已将 Llama 3 集成到我们的智能助手 Meta AI 中,它扩展了人们完成工作、创造和与 Meta AI 联系的方式。通过使用 Meta AI 进行编码任务和解…

【计算机毕业设计】济南旅游管理系统——后附源码

🎉**欢迎来到琛哥的技术世界!**🎉 📘 博主小档案: 琛哥,一名来自世界500强的资深程序猿,毕业于国内知名985高校。 🔧 技术专长: 琛哥在深度学习任务中展现出卓越的能力&a…

c语言如何理解指针的指针?

1.啥叫指针? 在C语言中,指针是一个非常重要的概念。指针本质上是一个变量,它的值不是数据本身,而是存储数据的内存地址。指针允许程序直接访问和操作内存中的数据,这在很多情况下非常有用,比如在处理数组、…

基于Canvas实现的简历编辑器

基于Canvas实现的简历编辑器 大概一个月前,我发现社区老是给我推荐Canvas相关的内容,比如很多 小游戏、流程图编辑器、图片编辑器 等等各种各样的项目,不知道是不是因为我某一天点击了相关内容触发了推荐机制,还是因为现在Canvas…

bug(警告):[vue-router] Duplicate named routes definition: …

查看警告:[vue-router] Duplicate named routes definition——翻译[vue-router]重复命名路由定义 小编劝诫:当我们在开发过程中警告也一定不要忽略,虽然你在本地跑代码时这些警告影响项目的正常运行,但是会让你产生误区&#xff…

Go语言入门|包、关键字和标识符

目录 Go语言 包文件 规则 关键字 规则 标识符 规则 预定义标识符 Go语言 Go语言是一种静态类型、编译型和并发型的编程语言,由Google开发。Go的源代码文件以.go为扩展名,文件名通常与包名保持一致。一个Go文件可以包含多个顶级声明,…