Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
最佳/正确的配置是什么?(javascript SOAP)_Javascript_Jquery_Node.js_Web Services_Soap - Fatal编程技术网

最佳/正确的配置是什么?(javascript SOAP)

最佳/正确的配置是什么?(javascript SOAP),javascript,jquery,node.js,web-services,soap,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.authoriz

我需要在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>]
[错误:无效的WSDL URL:https://********.com:999/SeniorSystemsWS/DataExportService.asmx?WSDL
代码:503
响应正文:Http/1.1服务不可用]

从浏览器访问此URL将返回正确的WSDL定义。供应商告诉我503是由于违反了同一原产地政策造成的。接下来,我研究了如何将CORS添加到node.js。这让我退了一步,问了一个问题:我在正确的森林里吗?我不确定。因此,我正在寻找一个命令行、支持SOAP的CORS应用程序(或同等)配置。我是一名主要使用PHP和Javascript的web开发人员,所以我首先转向Javascript,但这不是一项要求。思想?或者,是否有解决当前脚本错误的方法(我认为我找到的最好方法是在node.js中使用jQuery,其中包括CORS)

最有可能的是,此错误属于您的网站服务器。 请浏览此链接,可能会有所帮助


您还可以在web浏览器中打开wsdl,在服务下搜索soap:address-location标记。并找出正确的url,您正试图从脚本中调用。在浏览器中直接访问此url,看看您得到了什么。

我想我有更好的方法来完成此任务。我在周末发现PHP有一个完整的SOAP客户端。我用PHP编写了相同的基本登录脚本,运行良好。我在对loginExt的响应中得到了一个有效的身份验证代码(这在进一步的请求中是必需的),所以看起来一切都正常。在验证我是否可以实际使用web服务后,我将在此处发表评论。

只有在浏览器()中运行SOAP检索代码时,同源策略才有意义。服务器不应该返回503,除非它确实不可用。CORS也只适用于web浏览器,不适用于NodeJS代码()。我同意,WSDL URL在浏览器中可以很好地打开,所以我不相信它是一个真正的503。node.js/node-soap可能有问题。这就是我写这篇文章的原因,在诊断一个有点可疑的错误代码之前,我想确定我使用的是最好的工作平台。请参阅下面我的回复帖子-我想我已经找到了一个更好的解决方案。不幸的是,它不是我的服务器-我根本无法访问它。我已将提供商引导到此对话,并将让他们确定这是否真的是一个问题。那么,如果您没有凭据,您应该如何访问此Web服务?对不起,我在您的重播中读了太多“此错误属于您的网站服务器”。我无法访问服务器后端,因此没有日志、配置文件等。正如我在原始帖子中所述,当通过web浏览器访问时,URL会打开完整、正确的WSDL定义。当通过SOAP脚本进行访问时会发生错误。PHP SOAP工作得非常好。最大的障碍是制定参数的数据格式。作为奖励,它适合现有的系统语言选择(PHP)。