Server did not recognize the value of HTTP Header SOAPAction

在 Web 服务中进行 SOAP (Simple Object Access Protocol)通信时,SOAPAction 是重要的一个 HTTP 请求头部。它指定了请求中所使用的 SOAP 操作(operation),以及相应的命名空间(namespace)。如果服务器无法识别这个请求头,就会返回“Server did not recognize the value of HTTP Header SOAPAction”的错误信息。

错误原因

有几种常见的原因可能导致这个错误:

  1. SOAPAction 头部缺失或设置不正确:SOAPAction 必须是完全限定的操作名称和命名空间的组合,例如 "http://example.com/MyService/GetUserInfo"。如果 SOAPAction 设置不正确,服务器将无法识别请求的操作。
  2. 请求体格式错误:SOAP 请求必须遵循 XML 格式并符合约定的 schema。如果请求体格式不正确,服务器将无法解析请求。
  3. 代理服务器的问题:如果请求经过代理服务器,代理服务器可能会删除或更改 SOAPAction 头部,从而导致服务器无法解析请求。

解决方案

以下是几种可能的解决方案。

确认 SOAPAction 头部设置正确

首先,你需要确认 SOAPAction 头部被正确地设置。可以使用浏览器的开发者工具或者类似 Postman 的工具来检查请求头部,确保 SOAPAction 值是正确的。

确认请求体格式正确

如果 SOAPAction 头部设置正确,那么下一步就需要确认请求体格式正确。可以使用类似 XML 校验器或者 SOAP UI 的工具来检查请求体格式是否符合 schema。

确认代理服务器的问题

如果在代理服务器上有问题,可以尝试直接连接服务端,绕过代理服务器进行测试。如果错误仍然存在,那么问题可能出现在服务端。

示例代码

以下是一个简单的 Node.js 代码示例,用于发送包含正确 SOAPAction 头部的 SOAP 请求:

----- ------- - -------------------

----- ------- - -
    ---- -------------------------------
    ------- -------
    -------- -
        --------------- -------------------------
        ------------- ------------------------------------------
    --
    ----- ------------------ --------------------------------------------------------- -------------------------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------
--

---------------- --------------- --------- ----- -
    ------------------
---

注意到示例中的 SOAPAction 头部与请求体中的操作名称和命名空间是匹配的。如果这个值不匹配,你将会遇到“Server did not recognize the value of HTTP Header SOAPAction”的错误信息。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/26873


猜你喜欢

  • 将多维 JavaScript 数组转换为 JSON

    在前端开发中,我们常常需要将 JavaScript 数组转换为 JSON 格式进行传输和存储。而对于多维数组,如何正确地进行转换是一个需要考虑的问题。本文将介绍如何将多维 JavaScript 数组转...

    7 年前
  • 将 JavaScript 生成的 SVG 转换为文件

    SVG(可缩放矢量图形)是一种基于 XML 的图像格式,它可以通过 JavaScript 动态地生成和操作。在前端开发中,经常需要将 JavaScript 生成的 SVG 导出为文件。

    7 年前
  • 什么是 "[native code]"?——JavaScript中的原生代码

    在使用 JavaScript 进行开发时,你可能会经常看到一些函数或方法的源代码输出以 [native code] 结尾。那么这个术语究竟是什么意思呢?本文将深入探讨 [native code] 的含...

    7 年前
  • 如何在d3中居中文本?

    在使用d3.js编写可视化图表时,有时需要将文本居中对齐到一个矩形元素中。本文将介绍一种方法来实现这个目标。 使用text-anchor和dominant-baseline属性 在SVG中,text-...

    7 年前
  • HTML5 video - 通过编程方式显示/隐藏控件

    HTML5 video是在网页上播放视频的一种标准。它可以使用<video>标签将视频嵌入到网页中,并使用默认的控件来控制视频的播放。但是,有些时候我们可能需要通过编程方式来控制视频的控件...

    7 年前
  • 为什么 JavaScript 中的负数不总是 true 或 false?

    在 JavaScript 中,我们经常需要将一个值转化为布尔类型。在这个过程中,JavaScript 会对数据类型进行自动转换,并且对于一些特定的数据类型,它们的转换规则可能会让人感到有些困惑。

    7 年前
  • JavaScript 中 new 操作符是如何工作的?

    JavaScript 中的 new 操作符是用来创建一个对象实例的常用操作符。当我们使用 new 关键字创建实例时,实际上发生了一系列的步骤。 创建对象 首先,new 操作符会创建一个空的对象实例。

    7 年前
  • CSS3 Keyframe Animations: 让动画停留在最后一帧

    CSS3是一个令人兴奋的技术,它为前端开发提供了许多新的功能和选择。其中之一就是关键帧动画(Keyframe Animations),这是一个非常强大的特性,可以创建出各种各样的动画效果。

    7 年前
  • 将 JavaScript 代码转换为 C 代码

    JavaScript 是一种常见的编程语言,在 Web 开发领域中得到了广泛应用。但是在某些情况下,我们可能需要将 JavaScript 代码转换为 C 代码,例如为了提升执行速度或者将 JavaSc...

    7 年前
  • 在哪里可以找到 JSHint 数值错误代码列表?

    如果您在进行 JavaScript 开发时使用 JSHint,那么您可能已经遇到了一些数值错误代码。这些错误代码可以帮助您找出代码中潜在的问题,从而使代码更加健壮和易于维护。

    7 年前
  • 使用 AngularJS 实现对象的深度合并操作

    在前端开发中,我们有时需要将两个对象进行合并。AngularJS 提供了一个很便捷的方法用于实现对象的深度合并操作,即 angular.merge() 方法。 angular.merge() 方法概述...

    7 年前
  • 在JavaScript中如何存储字节数组

    在JavaScript中,字节数组的存储方式非常重要。如果我们想要在浏览器中处理二进制数据,例如图像或音频文件,那么将其存储为字节数组是很常见的做法。本文将介绍几种不同的方法来存储字节数组,并解释每种...

    7 年前
  • Webpack-dev-server 编译文件但不刷新页面或将编译的 JavaScript 提供给浏览器

    在前端开发中,使用 Webpack 作为打包工具已经成为了常规操作。而其中一个重要的功能是 webpack-dev-server,它可以提供一个本地服务器并实时编译代码,以便我们能够在开发过程中看到更...

    7 年前
  • Vue.js查询参数详解

    在Vue.js应用程序中,可以使用查询参数来传递可选的参数。查询参数是附加在URL末尾的键值对,它们以问号(?)开始,并用&符号分隔。 例如: https://example.com/sear...

    7 年前
  • jQuery: 如何在 keypress 事件中过滤非字符键?

    在前端开发中,经常需要处理用户在输入框中输入的数据。为此,jQuery提供了一些处理用户输入的事件,其中最常用的就是keypress事件。但是有时候需要过滤掉一些非字符键(如方向键、删除键等),以确保...

    7 年前
  • 在 HTML 页面中引入 GitHub 上的 JavaScript 文件

    在前端开发中,我们经常需要引入一些来自于第三方库的 JavaScript 文件。这些文件可以帮助我们快速实现某些特定功能,减少代码量和开发时间。而 GitHub 上则是许多优秀的 JavaScript...

    7 年前
  • 使用jQuery进行简单的屏幕抓取

    屏幕抓取是一个常见的Web开发任务,它可以让你从其他网站上获取信息并将其用于自己的应用程序。在本文中,我们将介绍如何使用jQuery进行简单的屏幕抓取。 什么是屏幕抓取? 屏幕抓取是指从一个Web页面...

    7 年前
  • jQuery Ajax - 如何在错误中获取响应数据

    在前端开发中,Ajax 是一种常用的技术,可以在不刷新页面的情况下与服务器进行交互。jQuery 是一个流行的 JavaScript 库,提供了简化 Ajax 请求的方法。

    7 年前
  • jQuery:unload 还是 beforeunload?

    在前端开发中,有时候我们需要在用户关闭当前页面或者离开该页面之前执行一些操作,比如保存数据、弹出提示框等。这时候就需要用到 unload 和 beforeunload 事件来实现这些功能。

    7 年前
  • 从外部链接改变 HTML 标签的 CSS 样式

    在前端开发中,我们经常需要修改 HTML 元素的样式。通常情况下,我们会将 CSS 样式直接写在 HTML 文件或内部样式表中。但是有时候,我们需要从外部链接(如 CDN 或第三方库)引入 CSS 文...

    7 年前

相关推荐

    暂无文章