Oat++ 后端实现跨域
这里记录在官方的例子中,加入跨域。Oat++ Example-CRUD

在官方的例子中,加入跨域。
Oat++ Example-CRUD

修改AppComponent.hpp文件中的代码,如下:
#include "AppComponent.hpp"#include "controller/UserController.hpp"
#include "controller/StaticController.hpp"#include "oatpp-swagger/Controller.hpp"#include "oatpp/network/Server.hpp"
#include "oatpp/web/server/interceptor/RequestInterceptor.hpp"
#include "oatpp/web/server/interceptor/ResponseInterceptor.hpp"
#include "oatpp/web/protocol/http/outgoing/ResponseFactory.hpp"#include <iostream>class CORSInterceptor : public oatpp::web::server::interceptor::RequestInterceptor, public oatpp::web::server::interceptor::ResponseInterceptor {
public:std::shared_ptr<oatpp::web::protocol::http::outgoing::Response> intercept(const std::shared_ptr<oatpp::web::protocol::http::incoming::Request>& request) override {if (request->getStartingLine().method == "OPTIONS") {auto response = oatpp::web::protocol::http::outgoing::ResponseFactory::createResponse(oatpp::web::protocol::http::Status::CODE_200, nullptr);/* response->putHeader("Access-Control-Allow-Origin", "*");*//* response->putHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");response->putHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");*///response->putHeader("Access-Control-Max-Age", "3600"); // Cache preflight responsereturn response;}return nullptr;}std::shared_ptr<oatpp::web::protocol::http::outgoing::Response> intercept(const std::shared_ptr<oatpp::web::protocol::http::incoming::Request>& request, const std::shared_ptr<oatpp::web::protocol::http::outgoing::Response>& response) override {response->putHeader("Access-Control-Allow-Origin", "*");response->putHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");response->putHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");return response;}
};void run() {AppComponent components; // Create scope Environment components/* Get router component */OATPP_COMPONENT(std::shared_ptr<oatpp::web::server::HttpRouter>, router);/* Get connection handler component */OATPP_COMPONENT(std::shared_ptr<oatpp::network::ConnectionHandler>, connectionHandler);/* Create a CORSInterceptor instance */auto corsInterceptor = std::make_shared<CORSInterceptor>();/* Add CORSInterceptor to the connection handler */auto httpConnectionHandler = std::static_pointer_cast<oatpp::web::server::HttpConnectionHandler>(connectionHandler);httpConnectionHandler->addRequestInterceptor(corsInterceptor);httpConnectionHandler->addResponseInterceptor(corsInterceptor);oatpp::web::server::api::Endpoints docEndpoints;docEndpoints.append(router->addController(UserController::createShared())->getEndpoints());router->addController(oatpp::swagger::Controller::createShared(docEndpoints));router->addController(StaticController::createShared());/* Get connection provider component */OATPP_COMPONENT(std::shared_ptr<oatpp::network::ServerConnectionProvider>, connectionProvider);/* create server */oatpp::network::Server server(connectionProvider, connectionHandler);OATPP_LOGD("Server", "Running on port %s...", connectionProvider->getProperty("port").toString()->c_str());server.run();/* stop db connection pool */OATPP_COMPONENT(std::shared_ptr<oatpp::provider::Provider<oatpp::sqlite::Connection>>, dbConnectionProvider);dbConnectionProvider->stop();}/*** main*/
int main(int argc, const char* argv[]) {oatpp::base::Environment::init();run();/* Print how much objects were created during app running, and what have left-probably leaked *//* Disable object counting for release builds using '-D OATPP_DISABLE_ENV_OBJECT_COUNTERS' flag for better performance */std::cout << "\nEnvironment:\n";std::cout << "objectsCount = " << oatpp::base::Environment::getObjectsCount() << "\n";std::cout << "objectsCreated = " << oatpp::base::Environment::getObjectsCreated() << "\n\n";oatpp::base::Environment::destroy();return 0;
}
相关文章:
Oat++ 后端实现跨域
这里记录在官方的例子中,加入跨域。Oat Example-CRUD 在官方的例子中,加入跨域。 Oat Example-CRUD 修改AppComponent.hpp文件中的代码,如下: #include "AppComponent.hpp"#include "controller/UserController…...
Three basic starting points to do AI
Computers have been based on memory/storage for so many years. Don’t try to come up with something else. For so many years, AI has been based on fixed precise rules or fuzzy matching rules. Don’t think about coming up with the third one by yourself. Vi…...
等保测评练习卷22
等级保护初级测评师试题22 姓名: 成绩: 一、判断题(10110分) 1. 在应用系统测试中,如果审计是一个独立的功能,那么应用系统应对审计进程进行保…...
Linux用户-普通用户
作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注我,我尽量把自己会的都分享给大家,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 Linux是一个多用户多任务操作系统,这意味着它可以同时支持多个用户登录并使用系统。…...
世界顶级思想家颜廷利:生命的升华,人类与动物的进化之道
世界顶级思想家颜廷利:生命的升华,人类与动物的进化之道 动物在于进化, 人类载于净化…(升命学说) 当代世界最著名的哲学家颜廷利教授指出,在探索生命奥秘的广阔旅程中,我们不禁惊叹于大自然…...
团队心脏:项目比赛中激发团队潜力的策略与技巧
团队心脏:项目比赛中激发团队潜力的策略与技巧 前言项目负责人的角色定位执行力的重要性提升个人执行力的策略团队协作的关键持续学习与创新应对挑战的态度总结与反思结语 前言 在项目管理的世界里,每一次比赛都是一场没有硝烟的战争。作为项目负责人&am…...
Qt安卓开发的一些概念
目录 1、Android 版本和 API 的对应关系? 2、ABI是什么 2.1、x86_64 2.2、x86 2.3、arm64-v8a 2.4、armeabi-v7a 3、不同架构的特点 3.1、32位 ARM 架构 (ARMv7) 3.2、64位 ARM 架构 (ARMv8-A) 3.3、32位 Intel 架构 (x86) 3.4、64位 Intel 架构 (x86-64…...
语音交互、AI问答,等你来体验!
功能背景 在实际大屏应用中,用户向大屏直接下达语音指令显的越来越便捷,其中体现的交互感也比通过动作指令来的更加强烈,给用户带来更高效的服务体验。目前EasyV平台开发的自定义事件交互已经很完善,组件之间可以进行触发联动。 …...
深度对比分析python和RPA,为什么会python了,还要用RPA?
我们需要先理解Python和RPA(Robotic Process Automation)的基本概念以及它们各自的特点和优势,才能真正理解在业务场景中,两者各自可能发挥的实际应用价值和潜在的商业化价值。 Python和RPA的定义及比较 1. Python: …...
el-table支持行拖动
<template><div ref"sortable-wrapper"><slot /></div> </template><script> import sortable from sortablejs;export default {props: {handle: { // 拖动元素type: String,default: },data: { // 列表数据type: Array,defaul…...
git拉取项目并切换到某个tag
从GitHub上拉取特定标签(tag)的项目可以通过以下步骤完成。标签通常用于标记项目中的特定版本或发布版本,因此通过拉取特定标签,你可以获取到项目在该版本下的完整代码和文件。 使用Git命令行工具 打开终端或命令行工具ÿ…...
数据结构之探索“堆”的奥秘
找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:数据结构(Java版) 目录 堆的概念 堆的创建 时间复杂度分析: 堆的插入与删除 优先级队列 PriorityQ…...
光影漫游者:高科技球形场馆开启沉浸式体验新时代—轻空间
轻空间(江苏)膜科技有限公司的自主品牌“QSPACE轻空间”推出的“光影漫游者”,是一款突破传统的创新球形场馆。这款产品自问世以来,以其独特的设计和卓越的功能迅速成为各类活动和展览的焦点。光影漫游者不仅以其时尚的外观吸引了…...
面试题007:static修饰符可以修饰什么,static的重要规则
在Java类中,可用static修饰属性、方法、代码块、内部类 。static关键字修饰的成员被称为静态成员。 被修饰后的成员具备以下特点: 随着类的加载而加载 优先于对象存在 修饰的成员,被所有对象所共享 访问权限允许时,可不创建对…...
EasyTwin的动画系统已经到了next level?快来一探究竟!
在实际的数字孪生项目场景建设中,水利项目中的洪水推演、工业领域的工程施工模拟、车间产线运转、机械装置和零件配置展示等项目场景,都对动画效果有很强的使用需求,这是对渲染软件和设计师能力的极大考验🆘。 别担心!…...
当业务开展遇到阻力,如何开展?
1:先够通问题,看能否通过及时的沟通解决掉问题阻力(相信你已经做过了无功而返) 2:全面思考这个问题,这个事情对方做了对他有什么好处?对大家的公共目标有什么好处?尝试说服 3&#x…...
萨科微半导体整流桥
金航标kinghelm萨科微总经理宋仕强介绍说,萨科微半导体的整流桥热销型号及其主要参数?萨科微的整流桥热销型号有 DB207S,其主要参数有:反向工作电压(VRRM)为 1000V、直流输出电流(Io)为 2.0A、…...
STM32的GPIO输入输出方式设置示例
1、GPIO口做基本的输入/输出口使用时,输入有上拉输入、下拉输入、浮空输入(既无上拉电阻也无下拉电阻)3种输入方式;输出有开漏输出、推挽输出2种输出方式。 2、示例 (1)示例1:GPIO做输出的设置…...
SQL插入、更新和删除数据
SQL插入、更新和删除数据 一、直接向表插入数据 1.1、插入完整的行 这里所说的完整行指的是包含表内所有字段的数据行;假设表中有n个字段,则插入完整行的语法: INSERT INTO 表名或视图名 VALUES(字段1的值,字段2的值,字段3的值,...,字段n的…...
如何将幻灯片中的图片背景设置为透明
在制作幻灯片时,我们经常需要插入图片来丰富内容,提升视觉效果。但有时,图片的背景可能会干扰幻灯片的整体设计,这时将图片背景设置为透明就显得尤为重要。本文将详细介绍如何在常用的幻灯片制作软件中实现这一效果,帮…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
