【问题标题】:What is the best/proper configuration? (javascript SOAP)什么是最佳/正确的配置? (JavaScript SOAP)
【发布时间】:2013-12-23 03:08:26
【问题描述】:

我需要在 LAMP 服务器上的夜间维护过程中从 Web 服务(通过 SOAP)检索数据。然后将该数据应用于数据库。我的研究返回了许多选择,我想我已经只见树木不见森林;部分原因是我读过的文章中混合了客户端和服务器术语以及观点。

最初我安装了 node.js 和 node-soap。我写了一个简单的脚本来测试功能:

var soap = require('/usr/local/lib/node_modules/npm/node_modules/soap');
var url = "https://api.authorize.net/soap/v1/Service.asmx?WSDL";
soap.createClient(url, function(err, client)
{
  if(typeof client == 'undefined')
  {
    console.log(err);
    return;
  }
  console.log('created');
});

这使用了一个演示 SOAP 源,它工作得很好。但是当我使用实际的 URL 时,我得到一个 5023 错误:

[Error: Invalid WSDL URL: https://*****.*****.com:999/SeniorSystemsWS/DataExportService.asmx?WSDL
Code: 503
Response Body: <html><body><b>Http/1.1 Service Unavailable</b></body> </html>]

从浏览器访问此 URL 会返回正确的 WSDL 定义。提供商告诉我 503 是由于违反了同源策略。接下来,我研究了将 CORS 添加到 node.js。这引发了我退后一步并提出以下问题:我在正确的森林中吗?我不确定。所以,我正在寻找一个命令行、支持 SOAP 的 CORS 应用程序(或等效)配置。我是一名主要使用 PHP 和 Javascript 的 Web 开发人员,所以 Javascript 是我首先转向的地方,但这不是必需的。想法?或者,是否有解决当前脚本错误的方法(我认为我发现的最好的方法是在包含 CORS 的 node.js 中使用 jQuery)

【问题讨论】:

  • 只有在浏览器中运行 SOAP 检索代码 (reference) 时,同源策略才有意义。服务器不应返回 503,除非它确实不可用。 CORS 也仅适用于 Web 浏览器,不适用于 NodeJS 代码 (reference)。
  • 我同意,WSDL URL 在浏览器中打开得很好,所以我不相信它是真正的 503。也许 node.js/node-soap 有问题。这就是我发帖的原因,在诊断出有点可疑的错误代码之前,我想确保我使用的是最适合这项工作的平台。请参阅下面的回复帖子 - 我想我找到了更好的解决方案。

标签: javascript jquery node.js web-services soap


【解决方案1】:

这个错误很可能属于您的网站服务器。 请通过此链接,它可能会有所帮助。

http://pcsupport.about.com/od/findbyerrormessage/a/503error.htm

你也可以在浏览器中打开你的wsdl,在services下搜索soap:address location标签。并找出正确的 url,你正试图从你的脚本中调用。直接在浏览器中访问这个网址,看看你得到了什么。

【讨论】:

  • 不幸的是,它不是我的服务器——我根本无法访问它。我已指示提供者进行此对话,并将让他们确定这是否真的是一个问题。
  • 那么,如果您没有凭据,您应该如何访问此 Web 服务?
  • 对不起,我对你的回放“这个错误属于你的网站服务器”读得太多了。我无法访问服务器后端,因此没有日志、没有配置文件等。正如我在原始帖子中所述,当通过 Web 浏览器访问时,该 URL 会打开一个完整、正确的 WSDL 定义。通过 SOAP 脚本访问时发生错误。
【解决方案2】:

我认为我有更好的方法来完成这项任务。我在周末发现 PHP 有一个完整的 SOAP 客户端。我用 PHP 编写了相同的基本登录脚本,它运行得很好。我在对 loginExt 的响应中得到了一个有效的身份验证代码(在进一步的请求中需要它),所以看起来一切正常。在确认我确实可以使用网络服务后,我会在这里发表评论。

【讨论】:

  • PHP SOAP 运行良好。最大的障碍是确定参数的数据格式。作为奖励,它适合系统的现有语言选择 (PHP)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-07
  • 2013-01-08
  • 1970-01-01
  • 1970-01-01
  • 2014-02-24
  • 2012-08-30
相关资源
最近更新 更多