我可以使用SOAP和WSHttpBinding对WCF服务进行JQuery调用吗?
如果是这样,怎么样? (网上的任何例子?)如果没有,为什么不呢?
从this post可以看出,我无法让它发挥作用。
我需要能够使用WSHttpBinding,因此我可以支持SAML和WS-Security。据我所知,basicHTTPBinding不支持ws-Security。
SO上的所有其他示例都使用json(我可以轻松工作)或basicHttpBinding。
我需要使用SOAP和ws-Security符合OGC 07-118r8标准。
答案 0 :(得分:3)
使用类似WS- *和WCF的复杂性,创建一个简单的jQuery异步回调到您网站上可以利用.NET内置WS-Security库的另一个页面是不是更容易?从那里你可以触发对WCF端点的调用,处理结果,并将其作为易于阅读的响应返回给jQuery函数。
我发现一些文章提到了你想要做的事情。听起来你基本上必须编写自己的WS-Security jQuery库才能直接使用JavaScript(我想这对你来说可能不切实际):
“使用”wsHttpBinding“绑定公开的服务实现了WS- * Web服务规范系列的WS-Security。由于绑定使用安全性,请求将被拒绝。如果不在JQuery上实现WS-Security,则无法调用该服务因此,为了调用服务方法,我们必须妥协安全性。“
http://www.codeproject.com/Articles/311908/Calling-WCF-service-exposed-with-different-binding
“... wsHttpBinding,这是一个不能与AJAX一起使用的SOAP绑定。”
http://www.west-wind.com/presentations/jquery/jquerypart2.aspx
答案 1 :(得分:1)
你无法在JavaScript中实现WS *!
最佳选择是在服务器上创建另一个绑定,并将其作为基本HTTP公开,甚至更好地作为WCF REST公开。
答案 2 :(得分:0)
理论上应该是可能的。我假设你已经想出如何获得你的SAML令牌并处理WS-Security。 WSHttpBinding默认为soap 1.2,因此请查看http绑定规范以了解如何使用jquery:http://www.w3.org/TR/soap12-part2/#soapinhttp构建请求或在WSHttpBinding上设置EnvelopeVersion.Soap11。祝你好运!