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

如何使用Axios NPM库发送带XML SOAP参数的GET请求?

Axios中用GET请求传递SOAP XML参数的问题

首先明确两个核心点:

  • HTTP规范里,GET请求不应当携带请求体,尽管部分客户端支持手动设置,但绝大多数服务器会直接忽略GET请求的body内容,这不符合HTTP的设计语义。
  • SOAP协议的标准传输方式是使用POST请求,将XML作为请求体发送。

针对你代码里的疑问:

  • params字段是用来生成URL查询字符串的,会把传入的对象转成?key1=value1&key2=value2的格式,直接传XML会被URL编码,完全无法被SOAP服务器识别,所以这里不能放XML。
  • data字段在Axios的GET请求中不会被发送,即使你手动设置了,也大概率会被服务器忽略,所以这里也不对。

可选方案(不推荐)

如果由于特殊限制必须用GET请求,只能将XML编码后作为查询参数的一个值传递,但存在URL长度限制、不符合语义的问题:

await Axios.get(url, {
  params: {
    soapRequest: encodeURIComponent(xmls)
  },
  headers: { "Content-Type": "text/xml;charset=UTF-8" }
});

标准正确做法(推荐)

遵循SOAP协议的标准,改用POST请求,将XML直接放在data中:

await Axios.post(url, xmls, {
  headers: { "Content-Type": "text/xml;charset=UTF-8" }
});

这样服务器才能正确解析请求体中的SOAP XML内容,完全符合HTTP和SOAP的规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 06:57:11