You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JS获取外部网站向我方网站发送的POST request payload内容?

问题解答

核心结论

纯前端JavaScript无法直接接收并处理外部网站主动发起的POST请求,你必须搭建一个后端服务来接收、解析这些XML数据。

为什么前端拿不到数据?

外部网站发起的POST请求是直接发送到你的域名对应的服务器IP地址上的,而前端JS运行在用户的浏览器客户端中——只有当请求是由当前页面内的JS发起时,前端才能捕获响应数据。你在工具里看到的payload是服务器端接收到的内容,浏览器里的JS完全感知不到这个外部发起的请求,自然无法访问。

怎么解决?

搭建一个极简的后端服务即可,以下是两种常见的实现示例:

1. Node.js + Express 方案

const express = require('express');
const bodyParser = require('body-parser');
const app = express();

// 配置解析XML格式的请求体
app.use(bodyParser.text({ type: 'application/xml' }));

// 定义接收POST请求的接口路径
app.post('/xml-webhook', (req, res) => {
  // req.body 就是外部传来的XML字符串
  const rawXml = req.body;
  console.log('收到XML数据:', rawXml);
  
  // 这里可以添加XML处理逻辑,比如用xml2js转成JSON
  // const { parseString } = require('xml2js');
  // parseString(rawXml, (err, result) => { /* 处理JSON数据 */ });
  
  // 返回成功响应给外部网站(对方可能需要确认请求已送达)
  res.status(200).send('OK');
});

// 启动服务器
app.listen(3000, () => {
  console.log('后端服务运行在 http://localhost:3000');
});

2. PHP 极简方案

<?php
// 读取POST请求的原始XML数据
$xmlData = file_get_contents('php://input');

// 保存到本地文件(或做其他处理)
file_put_contents('received_xml_' . date('YmdHis') . '.xml', $xmlData);

// 返回200状态码确认接收
header('HTTP/1.1 200 OK');
echo 'Received';
?>

补充说明

  • 后端服务部署后,把接收接口的URL(比如https://your-domain.com/xml-webhook)提供给外部网站即可
  • 务必根据外部网站的请求头配置后端的解析规则(比如对方如果用application/xml作为Content-Type,就要对应解析)

内容的提问来源于stack exchange,提问作者Berg_Durden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 16:05:16