2011-01-06 67 views
7

我可以使用SOAP和WSHttpBinding对WCF服务进行JQuery调用吗?您可以使用SOAP和WSHttpBinding对WCF服务进行jQuery调用吗?

如果是这样,怎么样? (网络上的任何示例?)如果不是,为什么不呢?

正如你所见,从this post,我无法得到它的工作。

我需要能够使用WSHttpBinding,所以我可以支持SAML和WS-Security。我的理解是basicHTTPBinding不支持ws-Security。

SO上的所有其他示例使用json(我可以轻松工作)或basicHttpBinding。

我需要使用SOAP和ws-Security来符合OGC 07-118r8标准。

+1

我认为jQuery的已经变得如此受欢迎,人们正在尝试做的JS方太很多服务器端的东西。您需要定义边界并确定明确区分这两个世界的线条。 – 2011-01-06 22:16:42

+0

如何使用JavaScript调用Web服务? – capdragon 2011-01-07 13:57:23

回答

3

像WS- *和WCF的复杂性,是不是更容易创建一个简单的jQuery异步回调到您网站上的另一个页面,可以利用.NET内置的WS-Security库?从那里你可以发起一个对WCF端点的调用,处理结果,并将其作为易读的响应返回给jQuery函数。

我发现了一些文章,提到你正在尝试做什么。这听起来像你基本上必须编写自己的WS-Security jQuery库,然后才能直接使用JavaScript(并且我认为这对你来说可能不切实际):

“使用”wsHttpBinding“绑定实现的服务实现了WS- Web服务规范的WS- *系列的安全性由于绑定使用安全性,请求将被拒绝,如果没有在JQuery端实现WS-Security,服务就不能被调用,因此,为了调用服务方法,我们必须妥协与安全。“

http://www.codeproject.com/Articles/311908/Calling-WCF-service-exposed-with-different-binding

“...的wsHttpBinding,这是一个SOAP绑定不会与AJAX的工作。”

http://www.west-wind.com/presentations/jquery/jquerypart2.aspx

1

没有办法在JavaScript中实现WS *!

最佳选择是在服务器上创建另一个绑定,并将其公开为基本HTTP或甚至更好地作为WCF REST。

+0

不是一个选项...客户需要通过WS- *与我沟通,而不是休息。我们被要求遵循我的问题中提到的标准。 – capdragon 2011-01-07 13:59:01

0

理论上应该是可能的。我假设你已经想出了如何获得SAML令牌并处理WS-Security。 WSHttpBinding默认为soap1.2,所以或者看一下http绑定规范,找出如何使用jquery构建请求:http://www.w3.org/TR/soap12-part2/#soapinhttp或在WSHttpBinding上设置EnvelopeVersion.Soap11。祝你好运!

相关问题