用nginx做代理即可,前端连接nginx,nginx的localtion的时候匹配的是域名之后的路劲,然后更换的也是域名部分,后面的路径直接拼接
当然也可写正则表达式重写,改变这种拼接的规则
以下的例子是重写之后的
rewrite ^.+apis/?(.*)$ /$1 break;
这里,我们利用Nginx的反向代理功能解决跨域问题,至于,什么是Nginx的反向代理,大家就请自行百度或者谷歌吧。
nginx作为反向代理服务器,就是把http请求转发到另一个或者一些服务器上。通过把本地一个url前缀映射到要跨域访问的web服务器上,就可以实现跨域访问。对于浏览器来说,访问的就是同源服务器上的一个url。而nginx通过检测url前缀,把http请求转发到后面真实的物理服务器。并通过rewrite命令把前缀再去掉。这样真实的服务器就可以正确处理请求,并且并不知道这个请求是来自代理服务器的。
具体解决方案如下:
在nginx.conf中编辑
server {
location / {
root html;
index index.html index.htm;
//允许cros跨域访问
add_header 'Access-Control-Allow-Origin' '*';
}
//自定义本地路径
location /apis {
rewrite ^.+apis/?(.*)$ /$1 break;
include uwsgi_params;
proxy_pass http://www.lyz.com;
}
}
然后我把项目部署在nginx的html根目录下,在ajax调用时设置url从http://www.lyz.com/apistest/test变为/apis/apistest/test然后成功解决。
比如我之前请求的Ajax如下:
$.ajax({
type:"post",
dataType: "json",
data:{'parameter':JSON.stringify(data)},
url:"http://www.lyz.com/apistest/test",
async: flag,
beforeSend: function (xhr) {
xhr.setRequestHeader("Content-Type", submitType.Content_Type);
xhr.setRequestHeader("user-id", submitType.user_id);
xhr.setRequestHeader("role-type", submitType.role_type);
xhr.setRequestHeader("access-token", getAccessToken().token);
},
success:function(result, status, xhr){
}
,error:function (e) {
layerMsg('请求失败,请稍后再试')
}
});
修改成如下的请求即可:
$.ajax({
type:"post",
dataType: "json",
data:{'parameter':JSON.stringify(data)},
url:"/apis/apistest/test",
async: flag,
beforeSend: function (xhr) {
xhr.setRequestHeader("Content-Type", submitType.Content_Type);
xhr.setRequestHeader("user-id", submitType.user_id);
xhr.setRequestHeader("role-type", submitType.role_type);
xhr.setRequestHeader("access-token", getAccessToken().token);
},
success:function(result, status, xhr){
}
,error:function (e) {
layerMsg('请求失败,请稍后再试')
}
});
至此,问题解决。
例如:
前后分离的时候,第一个login页面是在前端,其他的页面也是在前端,此时拦截的是前端发起接口的路径特征
对于网上源码需要改造成前后分离的,此时nginx的跨域处理不要误以为直接访问nginx到源码首页就可-----这种只是代理分发---负载均衡
而是需要拦截前端发起请求接口的特征
前端项目源码:
export default {
dev: {
host: '/api/v3',
shareHost: '/share.html'
},
production: {
// host: '/api/v1',
host: '/api/v3',
shareHost: '/share.html'
}
}
配置:
upstream apachephp {
server 192.168.202.183:8080; #Apache-----后端项目源码地址
}
server {
listen 8089;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {---------------一般用精确的项目特征路劲
proxy_pass http://apachephp;
#Proxy Settings
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_max_temp_file_size 0;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
location /api {---------------一般用精确的项目特征路劲,域名部分替换
proxy_pass http://apachephp;
#Proxy Settings
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_max_temp_file_size 0;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
原文链接:https://blog.csdn.net/l1028386804/article/details/79488328
相关推荐
基于人工势场法的动态路径规划算法与曲线平滑处理——自定义地图、起点、目标点与障碍物,可与A*和RRT融合应对动态障碍物(仅供学习参考使用),基于人工势场法的 动态路径规划+曲线平滑处理 路径规划算法 地图好修改 自己研究编写的Matlab路径规划 可自行设置起始点,目标点,障碍物,自由更地图。 ——————————————————— 可以和A*和RRT融合 动态障碍物 预先声明:该程序为版权所述,仅供学习参考使用。 ,基于人工势场法的动态路径规划; 曲线平滑处理; 路径规划算法; 地图可修改; 自行设置起点与目标点; 障碍物设置; 与A*和RRT融合; 动态障碍物处理。,基于人工势场法的动态路径规划与曲线平滑处理系统——可自定义地图与障碍物
11 生产制造部门KPI指标(结合BSC)
内容概要:本文档详细介绍了一款轻量级任务管理系统的构建方法,采用了Python语言及其流行Web框架Flask来搭建应用程序。从初始化开发环境入手到部署基本的CRUD操作接口,并结合前端页面实现了简易UI,使得用户能够轻松地完成日常任务跟踪的需求。具体功能涵盖新任务添加、已有记录查询、更新状态以及删除条目四个核心部分。所有交互行为都由一组API端点驱动,通过访问指定URL即可执行相应的操作逻辑。此外,在数据持久化层面选择使用SQLite作为存储引擎,并提供了完整的建模语句以确保程序顺利运行。最后,还提及未来拓展方向——加入用户权限校验机制、增强安全检查以及优化外观风格等方面的改进措施。 适合人群:熟悉Linux命令行操作并对Web编程有一定了解的技术爱好者;打算深入理解全栈开发流程或者正在寻找入门级别练手机会的朋友。 使用场景及目标:旨在为开发者传授实际动手编写小型互联网产品的技巧,尤其适用于个人作业管理或者是小团队协作场景下的待办事项追踪工具开发练习。通过亲手搭建这样一个完整但不复杂的系统,可以帮助学习者加深对于前后端协同工作流程的理解,积累宝贵的实践经验。 其他说明:虽然当前实例仅涉及较为基础的功能模块,但在掌握了这套架构的基础上,读者完全可以依据自身业务特点灵活调整功能特性,满足更多个性化定制化需求。对于初学者来说,这是一个非常好的切入点,不仅有助于掌握Flask的基础用法和技术生态,还能培养解决具体问题的能力。
2025义务教育新课程标准生物(2022年版)必考试题含答案.docx
项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat
基于随机森林算法RF的多输入单输出数据回归预测——含详细注释的代码与性能评估指标(决定系数R2、平均绝对误差MAE、平均相对误差MBE),基于随机森林算法RF的数据回归预测 多输入单输出 代码含详细注释,不负责 数据存入Excel,替方便,指标计算有决定系数R2,平均绝对误差MAE,平均相对误差MBE ,基于随机森林算法RF的数据回归预测; 多输入单输出; 详细注释; 存入Excel数据; 指标计算包括R2, MAE, MBE。,"基于随机森林算法的Excel数据回归预测:多输入单输出模型,含注释与误差指标"
Matlab领域上传的视频是由对应的完整代码运行得来的,完整代码皆可运行,亲测可用,适合小白; 1、从视频里可见完整代码的内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
电商团队绩效考核管理制度
酒店前厅客房主管晋升考核表
Python源码实例07如何生成高考填报志愿时的姓名区位码.zip
基于FPGA的QPSK调制解调技术实现:支持多种调制解调和信号处理方式解析,QPSK调制解调 FPGA 实现 verilog 语言 同样支持 FSM,MSK,DBPSK,DQPSK,8PSK,16QAM等信号调制解调FPGA开发 目前只支持用 vivado,modelsim实现,quartus 目前还没有做 调制分为串并转,差分编码,上采样(插值),成形滤波,载波相乘等 解调分为数字正交下变频,低通滤波,符号同步,载波同步,相差调整,硬判决,差分解码,并串转等 调制解码误码率为 0(无噪声条件下) ,核心关键词:QPSK调制解调; FPGA; Verilog; FSM; MSK; DBPSK; DQPSK; 8PSK; 16QAM; 串并转换; 差分编码; 上采样; 成形滤波; 载波相乘; 数字正交下变频; 低通滤波; 符号同步; 载波同步; 相差调整; 硬判决; 误码率。,"基于FPGA的QPSK及多信号调制解调器实现,支持多种格式用Verilog编程"
XX公司绩效考核责任书
四川特色旅游宣传网页模板(含完整源码) 【项目介绍】 一个精心设计的四川旅游宣传网页,完美展现巴蜀文化特色。项目采用原生HTML+CSS+JavaScript开发,代码结构清晰,注释详细,适合学习和二次开发。 【功能特点】 精美轮播图展示四川特色景点 背景音乐播放器(古风音乐衬托氛围) 特色视频播放功能 响应式布局设计 优雅的过渡动画效果 完整的导航菜单系统 CSS现代化样式设计 【适用人群】 Web前端开发学习者 需要网页模板的旅游从业者 对四川文化感兴趣的开发者 HTML5+CSS3学习者 【技术栈】 HTML5 CSS3(含动画效果) JavaScript 媒体播放技术 响应式设计 【使用说明】 下载后解压即可使用 源码注释完整,易于理解 可直接部署或二次开发
1、文件内容:aether-test-util-1.13.1-13.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/aether-test-util-1.13.1-13.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
房地产绩效考核方案
Configuration Nucleo-L476RG-Test STM32CubeMX 4.19.0 Date 02/18/2017 MCU STM32L476RGTx PERIPHERALS MODES FUNCTIONS PINS ADC1 Temperature Sensor Channel ADC1_TempSens_Input VP_ADC1_TempSens_Input SYS SysTick SYS_VS_Systick VP_SYS_VS_Systick USART1 Asynchronous USART1_RX PA10 USART1 Asynchronous USART1_TX PA9 USART2 Asynchronous USART2_RX PA3 USART2 Asynchronous USART2_TX PA2 Pin Nb PINs FUNCTIONs LABELs 2 PC13 GPIO_Input keyUser 16 PA2 USART2_TX 17 PA3 USART2_RX 21 PA5 GPIO_Output LD2 42
蚁群算法融合动态窗口法的路径规划算法研究:多动态障碍物的应用与挑战,蚁群算法融合动态窗口法路径规划算法 多动态障碍物 ,核心关键词:蚁群算法; 动态窗口法; 路径规划算法; 多动态障碍物; 融合。,"融合动态窗口与蚁群算法的路径规划技术应对多动态障碍物"
Python源码实例06之如何按照拼音顺序对中文汉字进行排序.zip
生产部员工KPI绩效考核指标(精)
体育馆弱电智能化系统深化设计方案.pptx