我正在尝试在javascript中使用SOAP,但我没有得到如何启动它。 这是我用PHP编写的代码示例,它工作正常。我想用Javascript编写这段代码。在下面的代码中,我从www.example.com调用一个api,并且为了调用某些api,我们需要传递一些参数。
$soapClient = new SoapClient("https://www.example.com/WSDL");
$param_sh = array( );
$header = new SoapHeader('http://somesite.com/action/', 'user_credential', $param_sh);
$soapClient->__setSoapHeaders(array($header))
$param = array("with some parameter");
$contents = $soapClient->__call("name_of_method",array($param));
print($contents);
答案 0 :(得分:4)
现在,自从提出这个问题超过5年以来,Javascript和网络已经发生了很多事情,所以:
你可以发送跨源请求,现代浏览器100%正常(如果你发送它们的服务器允许CORS,当然)
< / LI>关于StackOverflow的主题有很多问题。
答案 1 :(得分:3)
假设您正在谈论浏览器内的Javascript,您将无法使用SOAP。浏览器遵循同源策略,它(松散地)说你不能从javascript发出跨域请求。这意味着,如果SOAP服务(或任何HTTP请求)与浏览器页面当前所在的域相同,则您只能发出请求。由于这个限制/功能,没有人在Javascript中实现SOAP客户端时遇到很多麻烦(尽管它们可能确实存在)。
最好的办法是通过PHP进行SOAP调用,然后从您的网页(通过javascript)向创建实际SOAP请求的PHP页面发出AJAX请求。
答案 2 :(得分:3)
JavaScript没有开箱即用的SOAP库,但您可以谷歌并找到它们,例如here。并非这不会解决@Alan引用的限制。 Web服务仍然需要位于源服务器上。