news 2026/4/16 13:00:17

JavaScript调用ABAP后端发布的restful服务

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JavaScript调用ABAP后端发布的restful服务

1.消费代码

我这里账号密码配置在node.js的.env,所以注释了组装Authrization的部分

let url = 'http://localhost:3000/api/zbakewm?ACTION=GET_BSK_INFO'; // const USERNAME = '账号'; // const PASSWORD = '密码'; // function getAuthHeader() { // const credentials = btoa(`${USERNAME}:${PASSWORD}`); // return `Basic ${credentials}`; // } fetch(url, { method: 'POST', headers: { // 'Authorization': getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify({ // 你的数据 "in_card_id": "300003390613" }) }) .then(response => response.json()) .then(data => { console.log(data); }).catch(error => { console.error('Error:', error); });

2.通过node.js服务提供代理,解决CORS跨域问题

// server.js require('dotenv').config(); const express = require('express'); const axios = require('axios'); const cors = require('cors'); const helmet = require('helmet'); const morgan = require('morgan'); const app = express(); const PORT = process.env.PORT || 3000; // 安全中间件 app.use(helmet()); // 设置安全 headers app.use(cors()); // 允许所有域名 app.use(morgan('combined')); // 日志 app.use(express.json({ limit: '10mb' })); // 构造 ABAP Basic Auth 头 const abapAuth = 'Basic ' + Buffer.from( `${process.env.ABAP_USER}:${process.env.ABAP_PASS}` ).toString('base64'); console.log('Generated Auth Header:', abapAuth); // 通用代理路由 app.use('/api', async (req, res) => { try { const targetPath = req.originalUrl.replace('/api', ''); const url = `${process.env.ABAP_URL}${targetPath}`; console.log(`Proxying to ABAP: ${url}`); const response = await axios({ method: req.method, url: url, headers: { // ...req.headers, Authorization: abapAuth, // Host: new URL(process.env.ABAP_URL).host, // 避免 Host 头问题 'Content-Type': req.headers['content-type'] || 'application/json' }, data: req.body, httpsAgent: process.env.NODE_TLS_REJECT_UNAUTHORIZED === '0' ? new (require('https')).Agent({ rejectUnauthorized: false }) : undefined, // 仅用于自签名证书测试!生产环境应使用有效证书 timeout: 180000 }); // 返回 ABAP 响应 res.status(response.status).json(response.data); } catch (error) { console.error('Proxy error:', error.message); if (error.response) { res.status(error.response.status).send(error.response.data); } else { res.status(502).json({ error: 'Failed to reach ABAP system' }); } } }); // 健康检查 app.get('/health', (req, res) => { res.json({ status: 'OK', timestamp: new Date().toISOString() }); }); app.listen(PORT, () => { console.log(`ABAP Proxy running on port ${PORT}`); });

.env配置文件

ABAP_URL=http://ip:port ABAP_USER=账号 ABAP_PASS=密码 PORT=3000 NODE_ENV=production

cd到项目目录

运行终端命令安装依赖

npm init -y && npm install dotenv express axios cors helmet morgan

依赖安装成功后生成的文件

终端命令启动代理服务

node node proxy-server.js

可以看到代理服务已经成功启动

3.启动前端页面可以看到正常调用ABAP后端服务,获取到数据

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/5 8:49:44

知识蒸馏:让小模型继承大模型智慧的AI黑科技

知识蒸馏是一种让大模型(老师)教小模型(学生)的技术,通过"软标签"和"特征对齐"两种方式,将大模型的思考方式和隐性知识传递给小模型。这不仅是一种模型压缩技术,更是一种AI…

作者头像 李华
网站建设 2026/4/6 3:04:16

DALI加速医疗影像预处理

📝 博客主页:jaxzheng的CSDN主页 DALI加速医疗影像预处理:从计算瓶颈到普惠医疗的范式跃迁目录DALI加速医疗影像预处理:从计算瓶颈到普惠医疗的范式跃迁 引言:医疗AI的“隐形瓶颈”与破局点 一、医疗影像预处理&#x…

作者头像 李华
网站建设 2026/4/2 8:56:32

救命神器10个AI论文网站,MBA轻松搞定毕业论文!

救命神器10个AI论文网站,MBA轻松搞定毕业论文! AI 工具让论文写作不再难 在当今快节奏的学习生活中,MBA 学生常常面临时间紧、任务重的压力,尤其是在撰写毕业论文时。传统的写作方式不仅耗时费力,还容易因思路不清晰而…

作者头像 李华
网站建设 2026/4/15 12:05:17

Flink反压机制解析:如何应对数据处理瓶颈

Flink反压机制深度解析:从原理到实战,解决数据处理瓶颈 一、标题选项 《Flink反压机制全揭秘:如何让你的流处理任务不再“卡壳”?》《彻底搞懂Flink反压:从底层原理到优化实践,解决数据处理瓶颈》《Flink反…

作者头像 李华
网站建设 2026/4/13 16:08:52

Debian12 源码编译 FreeSWITCH 1.10.12

第一步&#xff0c;更换 apt 源cat <<"EOF" > /etc/apt/sources.listdeb http://mirrors.huaweicloud.com/debian/ bookworm main non-free non-free-firmware contrib deb http://mirrors.huaweicloud.com/debian-security/ bookworm-security main deb ht…

作者头像 李华
网站建设 2026/4/11 23:23:04

研究生师兄私藏的4款降AI神器,低调好用不踩雷

title: “研究生师兄私藏的4款降AI神器&#xff0c;低调好用不踩雷” slug: “graduate-student-ai-reduction-tools-recommendation” date: 2026-01-15 author: “研三师兄” tags: [“研究生降AI工具”, “师兄推荐降AI”, “硕士论文降AI”, “博士论文降AI率”, “研究生论…

作者头像 李华