什么是最佳/适当的配置? (javascript SOAP)

时间:2013-12-23 03:08:27

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

我需要在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,但这不是必需的。想法?或者,是否有当前脚本错误的解决方案(我认为我发现在node.js中使用包含CORS的jQuery最好)

2 个答案:

答案 0 :(得分:0)

最有可能的是,此错误属于您的网站服务器。 请仔细阅读此链接,这可能会有所帮助。

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

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

答案 1 :(得分:0)

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