从Vue到Postman全面验证API接口跨域问题

文章目录

    • 1、前言
    • 2、跨域问题
    • 3、后端服务接口
    • 4、接口跨域测试
      • 4.1 Vue调用测试
      • 4.2 Postman测试
    • 5、服务接口增加注解@CrossOrigin解决跨域

1、前言

    最近刚接手了一个新项目,业务还没了解全,让开发功能。做了俩接口,postman自测完能拿到数据就给前端联调了。
    过了十分钟,前端告诉我要解决下跨域问题。我心想,这个服务都运行这么久了,生产环境还有三方产品在调用它,怎么突然存在跨域问题。看了下项目确实没有做跨域配置。
    但是三方产品都在用很久了。带着疑问,还是找方法去测了下接口是否支持跨域。然后再去配置跨域拦截,解决跨域问题。

2、跨域问题

    我们都知道跨域是同源策略导致的。域名不同、协议不同、端口号不同任意一种情况都会导致跨域。

域名不同:当前页面的域名为 www.example.com,而请求的资源的域名为 api.example.com。
协议不同:当前页面的协议为 https,而请求的资源的协议为 http。
端口号不同:当前页面的端口号为 8080,而请求的资源的端口号为 9090。

    此处测试用端口号不同的场景来测试。
    我的后端服务端口为9090
    发出请求的前端资源端口暂定为5173
    前端请求后端,此时满足端口号不同,根据同源策略会出现跨域。

3、后端服务接口

接口名称:/ai/assistant/getEngineModel
请求类型:GET
服务地址:localhost:9090

@RestController
@RequestMapping("/ai/assistant")
public class AssistantController {@GetMapping("/getEngineModel")public Result<List<EngineModelVO>> getEngineModel(){return ResultUtils.success(engineModelList);}
}

4、接口跨域测试

4.1 Vue调用测试

    Vue项目端口为5173,运行后访问localhost:5173服务。
    此处Vue项目中引入了axios组件,直接使用axios调用接口进行测试。

<template><AButton @click="clickWechat"/>
</template><script>
import axios from 'axios'const clickWechat =() => {axios({method: 'get',url: 'http://localhost:9090/ai/assistant/getEngineModel',withCredentials: true,data: {},}).then(({ data }) => {console.log(data)})
}
</script>
  • 跨域失败截图

在这里插入图片描述
在这里插入图片描述

  • 跨域成功截图

在这里插入图片描述
在这里插入图片描述

4.2 Postman测试

    在Postman下新建Collections,然后在项目下新建请求Add request。
    在Headers下新增Origin,维护值为localhost:5173。表示我要从localhost:5173请求localhost:9090的服务。
    点击Send,虽然服务响应Status为200,Response Body 也正常返回接口数据。
    但是Response Headers中不包含Access-Control-Allow-Origin localhost: 5173,说明当前请求存在跨域问题。

  • 跨域失败截图
    缺少Access-Control-Allow-Origin localhost: 5173
    在这里插入图片描述
  • 跨域成功截图
    包含以下响应内容
    Access-Control-Allow-Origin localhost: 5173
    Vary: Origin
    Access-Control-Allow-Credentials: true

在这里插入图片描述

5、服务接口增加注解@CrossOrigin解决跨域

    确认项目跨域问题存在,对新增服务接口增加注解 @CrossOrigin 即可。
    扩展说明:跨域问题解决方式很多,不限于当前@CrossOrigin注解、WebMvcConfigurer接口和自定义Filter。

@RestController
@RequestMapping("/ai/assistant")
public class AssistantController {@GetMapping("/getEngineModel")@CrossOrigin(origins = "*")public Result<List<EngineModelVO>> getEngineModel(){return ResultUtils.success(engineModelList);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/395099.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

影视解说中视频素材哪里找?

想做电影解说类视频&#xff0c;不知道哪里下载高清解说素材&#xff1f; 今天小编就带大家揭秘5大影视解说素材网站&#xff0c;赶紧进来看看吧&#xff01;&#xff5e; 1. 稻虎网 作为国内顶尖视频素材网站&#xff0c;稻虎素材网提供了丰富的电影解说视频素材&#xff0c;…

配置Mysql的慢查询日志

一、什么是Mysql慢查询日志 MySQL慢查询日志是MySQL数据库自带的一个功能&#xff0c;用于记录执行时间超过指定阈值的SQL语句&#xff0c;以便于后续的性能优化工作 帮助开发和DBA发现哪些SQL语句需要优化&#xff0c;在哪些地方需要修改&#xff0c;以提高数据库的性能 默认…

生成式AI,在中国工业找到新“活法”

生成式AI&#xff0c;正在经历一场关于落地前景的论战。 在德国中北部城市希尔德斯海姆&#xff0c;世界工业巨头博世已经把生成式AI技术用在了生产线上。他们以AI仿真绘制的方式合成出超过15000张关于产品缺陷的图片&#xff0c;然后将其应用于电机定子生产线的质检。借助生成…

MySQL中的索引——适合创建索引的情况

1.适合创建索引的情况 1、字段的数值有唯一性的限制 2、频繁作为 WHERE 查询条件的字段 某个字段在 SELECT 语句的 WHERE 条件中经常被使用到&#xff0c;那么就需要给这个字段创建索引了。尤其是在数据量大的情况下&#xff0c;创建普通索引就可以大幅提升数据查询的效率。 …

STM32基础篇:I2C通信协议

I2C总线 I2C&#xff08;IIC---Inter Integrated Circuit 内部集成电路&#xff09; 以上为I2C大体结构图&#xff0c;其中时钟线SCL用于传输时钟信号&#xff0c;数据线SDA来传输实际的数据。 主机与从机 1.主机的职责 假如由从机1和从机2&#xff0c;从机1想向SDA上发送一…

Java二十三种设计模式-桥接模式(10/23)

桥接模式&#xff1a;解耦抽象与实现的灵活设计 引言 桥接模式&#xff08;Bridge Pattern&#xff09;是一种结构型设计模式&#xff0c;用于将抽象部分与其实现部分分离&#xff0c;使它们可以独立地变化。它是一种对象结构型模式&#xff0c;又称为柄体(Handle and Body)模…

高翔【自动驾驶与机器人中的SLAM技术】学习笔记(五)卡尔曼滤波器一:认知卡尔曼滤波器;协方差矩阵与方差;

卡尔曼滤波器 为了研究卡尔曼&#xff0c;我阅读了大量博文。不敢说完全吃透&#xff0c;但是在做一件什么事&#xff0c;可以通过下面这文章来理解&#xff0c;我读了不下五遍。并整理标准重点&#xff0c;添加自己的一些见解。 自动驾驶传感器融合算法 - 自动驾驶汽车中的激…

电脑屏幕录制工具分享5款,附上详细电脑录屏教程(2024全新)

日月更迭&#xff0c;转眼间已经来到了2024年的立秋&#xff0c;在这个数字技术快速发展的时代&#xff0c;电脑录屏技术已经成为了一项不可或缺的技能&#xff0c;无论是用于工作汇报、在线教学、游戏直播还是个人娱乐。那么录屏软件哪个好用呢&#xff1f;接下来&#xff0c;…

Apache Tomcat 7下载、安装、环境变量配置 详细教程

Apache Tomcat 7下载、安装、环境变量配置 详细教程 Apache Tomcat 7下载Apache Tomcat 7 安装Apache Tomcat 7 环境变量配置启动 Apache Tomcat 7测试Tomcat7是否启动成功 Apache Tomcat 7下载 1、下载地址&#xff0c;找到Archives 链接: 官网下载地址 2、找到Tomcat 7&…

二进制分组背包优化

前言&#xff1a;好久没有写分组背包了&#xff0c;写一个二进制优化的背包练练手 #define _CRT_SECURE_NO_WARNINGS #include<bits/stdc.h> using namespace std;#define int long long int n,w; const int N (int)1e7; struct node{int value,weight; }sto[N]; int d…

【数据链路层】ARP协议

文章目录 以太网以太网帧对的格式 MAC地址对比MAC地址和IP地址 MTU和MSSARP协议ARP协议的工作原理ARP欺骗 以太网 ”以太网" 不是一种具体的网络, 而是一种技术标准; 既包含了数据链路层的内容, 也包含了一些物理层的内容. 例如: 规定了网络拓扑结构, 访问控制方式, 传输…

nuxt3实战:完整的 nuxt3 + vue3 项目创建与useFetch请求封装

一. 安装 pnpm dlx nuxilatest init <project-name>// ornpx nuxilatest init <project-name>如遇到报错 手动安装&#xff1a; 浏览器访问报错https请求地址&#xff1a; 点击tar(项目初始文件的下载地址)对应地址,下载starter-3.tar.gz 包到本地 本地创建项…

AskYourDatabase v1.1.83 使用人工智能连接您的数据库并与您的数据聊天

AskYourDatabase 是一个创新的 平台 它允许用户直接连接到您的数据库并与您的数据聊天 。这个革命性的工具使用人工智能来提供答案和分析&#xff0c;日常开发中可以用来帮助开发者编写sql脚本&#xff0c;分析数据结构等。支持市面上流行的数据库。后端数据库开发的又一利器&a…

Go语言加Vue3零基础入门全栈班15 gin+gorm+vue3用户管理系统实战录播课 2024年08月04日 课程笔记

预览 登录页面&#xff1a; 首页&#xff1a; 用户列表&#xff1a; 新增用户&#xff1a; 删除用户&#xff1a; 暗黑模式&#xff1a; 概述 如果您没有Golang的基础&#xff0c;应该学习如下前置课程。 01 Golang零基础入门课_20240726_149元02 Golang面向对象…

Open3D 三维重建-Poisson Surface Reconstruction (泊松曲面重建)

目录 一、概述 1.1原理 1.2实现步骤 1.3应用 二、代码实现 2.1关键函数 2.1.1函数代码 2.1.2参数详解 2.1.3名词解释 2.2完整代码 三、实现效果 3.1原始点云 3.2重建后点云 3.3去除低密度点云 Open3D点云算法汇总及实战案例汇总的目录地址&#xff1a; Open3D点…

Linux快速切换/完善内核

看到标题就晓得是为啥而写的吧&#xff0c;没错&#xff0c;它就是记录Linux的内核切换的一些常见问题&#xff0c;尽可能把平时一些经验和真实有效的心得写下来&#xff0c;同时也希望可以给需要切换内核版本的大伙带来方便&#xff0c;感受到"小小内核切换"竟然如此…

某赛通电子文档安全管理系统 CDGAuthoriseTempletService1 SQL注入漏洞复现(XVE-2024-19611)

0x01 产品简介 某赛通电子文档安全管理系统(简称:CDG)是一款电子文档安全加密软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资产,对电子文档进行全生命周期防护,系统具有透明加密、主动加密、智能…

高效的编程学习方法和技巧

编程小白如何成为大神&#xff1f;大学新生的最佳入门攻略 编程已成为当代大学生的必备技能&#xff0c;但面对众多编程语言和学习资源&#xff0c;新生们常常感到迷茫。如何选择适合自己的编程语言&#xff1f;如何制定有效的学习计划&#xff1f;如何避免常见的学习陷阱&…

关于区块链的公共医疗应用开发

区块链的养老保险平台应用开发 任务一:环境准备 1.编译区块链网络 目录:/root/xuperchain/ 在区块链网络目录下执行make命令,编译网络,编译成功后输出compile done! 启动区块链网络 2.创建钱包账户 创建普通钱包账户userTest,命令如下 bin/xchain-cli account newke…

【linux|001】Unix和Linux的关系 及 它们的发展历史

&#x1f341;博主简介&#xff1a; &#x1f3c5;云计算领域优质创作者 &#x1f3c5;2022年CSDN新星计划python赛道第一名 &#x1f3c5;2022年CSDN原力计划优质作者 ​ &#x1f3c5;阿里云ACE认证高级工程师 ​ &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社…