【发布时间】: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)
【问题讨论】:
-
我同意,WSDL URL 在浏览器中打开得很好,所以我不相信它是真正的 503。也许 node.js/node-soap 有问题。这就是我发帖的原因,在诊断出有点可疑的错误代码之前,我想确保我使用的是最适合这项工作的平台。请参阅下面的回复帖子 - 我想我找到了更好的解决方案。
标签: javascript jquery node.js web-services soap