cors问题复现

news/2024/12/2 11:44:50/文章来源:https://www.cnblogs.com/smlile-you-me/p/18581469

目录
  • 环境
  • 配置前端服务器 (端口3000)
  • 配置API服务器 (端口5000)
  • 启用配置

环境

Debian12
192.168.2.102/24rambo@mac:~$ cat /etc/apt/sources.list.d/debian.sources 
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/debian
Suites: bookworm bookworm-updates bookworm-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

配置前端服务器 (端口3000)

rambo@mac:~$ sudo apt install -y nginx
rambo@mac:~$ sudo nginx -v
nginx version: nginx/1.22.1rambo@mac:~$ sudo vim /etc/nginx/sites-available/frontend
server {listen 3000;root /var/www/html;index index.html;location / {try_files $uri $uri/ =404;}
}rambo@mac:~$ sudo vim /var/www/html/index.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>CORS Issue</title>
</head>
<body><h1>CORS Issue Example</h1><button id="fetchData">Fetch Data</button><script>document.getElementById("fetchData").addEventListener("click", () => {fetch("http://192.168.2.102:5000/api/data", {method: "GET",}).then(response => response.json()).then(data => console.log(data)).catch(error => console.error("Error:", error));});</script>
</body>
</html>

配置API服务器 (端口5000)

rambo@mac:~$ sudo vim /etc/nginx/sites-available/api
server {listen 5000;location /api/ {default_type application/json;# 不设置 CORS(复现问题)add_header Access-Control-Allow-Origin "";          # 为空,不允许跨域return 200 '{"message": "Hello from the API server!"}';}
}

启用配置

sudo ln -s /etc/nginx/sites-available/frontend    /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/api    /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

rambo@mac:~$ cat /etc/nginx/sites-available/api
server {listen 5000;location /api/ {add_header Access-Control-Allow-Origin *;add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";add_header Access-Control-Allow-Headers "Content-Type";default_type application/json;return 200 '{"message": "Hello from the API server!"}';}
}rambo@mac:~$ sudo systemctl reload nginx

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

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

相关文章

Qt/C++实现帧同步播放器/硬解码GPU绘制/超低资源占用/支持8K16K/支持win/linux/mac/嵌入式/国产OS等

一、前言 首先泼一盆冷水,在不同的电脑上实现完完全全的帧同步理论上是不可能的,市面上所有号称帧同步的播放器,同一台电脑不同拼接视频可以通过合并成一张图片来绘制实现完完全全的帧同步,不同电脑,受限于网络的延迟,命令交互的时间占用,不同硬件之间的主频偏差等,肯定…

EyeSoothe:用科技守护您的眼睛!

眼睛是心灵的窗口,而 EyeSoothe 则是您保护眼睛健康的智能助手。这款全新的护眼应用结合了人工智能和深度分析技术,为您提供全方位的视力管理服务,带来舒适与便利。 https://apps.apple.com/cn/app/eyesoothe/ 为什么选择 EyeSoothe? • AI智能试戴眼镜:借助AI虚拟试戴功能…

ai大模型流式输出------基于SSE协议的长连接实现

传统的http1.0请求开发,已经满足了我们日常的web开发。一般请求就像下图这样子,客服端发起一个请求(触发),服务端做出一个响应(动作): 有时会有诸如实时刷新,实时显示的场景,我们往往是客户端定时发起请求,不断的尝试获取最新的数据。但是每次请求都会创建并释放一个…

子卡设计原理图:232-基于FMC的2收2发TLK2711子卡

基于FMC的2收2发TLK2711子卡 一、板卡概述TLK2711 是千兆位收发器,专用于超高速双向点对点数据传输系统。TLK2711与时钟芯片SI5338相结合支持1.6Gbps至2.5Gbps的有效串行接口速度,可提供高达 2Gbps的数据带宽。板卡包含2路TLK2711,实现2收2发 。二、技术规格 ● 电源供电:F…

Python 存储验证码至redis

存储时考虑原子性 import redis# 实例化redis对象r = redis.Redis(host=localhost, port=6379, db=5,decode_responses=True)# 随机码的存储 def save_code(email,lifetime,code):# 原子操作,确保原子性 都执行或都不执行# 原子性保存验证码return r.setex(email,lifetime,cod…

【终端】终端配置、Vim使用相关

终端设置 MobaXterm主题 GithubVim 设置相关设置显示行号/etc/vimrc 是系统范围的初始化配置 ~/.vimrc 个人的vim初始化配置如果没有个人的vim初始化配置:touch ~/.vimrc vim ~/.vimrc设置好保存退出 wq使用相关跳转跳转指定行 :100跳转到100行 跳转到最开头 gg 跳转到最末…

idea的如何git代码进行合并

案例,将dev-wsg 的部分代码提交,合并到develop中1、先使用命令,将分支切换到develop分支 git checkout develop2、在idea 底部,选中这个标签页 3、选中要合并的提交,选择优选。这样本地的代码,会合并到本地develop分支中 4、优选后,如果分支右侧显示还要推送,则要进行…

11.30学习日记

11.30学习日记 oj 跑项目报错如下查问题,改成java8这个路径也要改掉这里用的是木马程序测试路径 改成我们正常测试的main.java就行运行成功

携程酒店库存查询接口(接单被骗直接放出接口)

本来是接单的,做了一个查询库存自动到他们系统里下库存的单子,做好部署好,老板可能也有点技术,拿了跑路了,那就放出来,给大家用 接口请求格式:https://down.ychengsnsm.com/jd/api.php?id=48565681&checkinDate=2024-12-30 测试图:id就是酒店id,随便到携程到个酒…

jQuery和CSS3超酷3D翻转式模态对话框插件

jquery-awesomodals是一款JQUERY和CSS3超酷3D翻转式模态对话框插件。该对话框特效通过jquery和CSS3 transitions和transforms来在对话框打开时制作3D翻转的效果,效果非常的酷。在线演示 下载安装 可以通过bower来安装jquery-awesomodals插件。$ bower install jquery-awesomo…

软件工程课堂测试九

软件需求与分析课堂测试九—结构化建模分析II(100分) (45分钟)1、 需求描述: 请设计一个仓储管理系统原型系统,该系统支持多个仓库的设立。统一 设立物资台账,物资台账需包含物资编码、物资名称、规格、材质、供应商、 品牌、物资分类,用户可以自定义物资的物资分类。…