2010-10-07 78 views
1

我正在寻找使用C#创建SOAP API,然后我可以使用JavaScript调用。我经常使用C#,但没有任何创建API的经验。我想使用JavaScript调用API,因为这将用于提交来自多个不是由我们维护的网站的表单数据。是否可以使用C#和JavaScript创建SOAP API

如果有比SOAP更好的解决方案,我愿意接受建议。

如果任何人都可以指点我的例子或有任何他们可以分享的例子,我将不胜感激。

TIA BrianKE

编辑:我应该提到,我会部署的解决方案,将允许来自多个网站的表格数据,不属于我们的域名,直接将数据提交到我们的数据库,因此API。也许有一种不同的方式来处理这个,而不是我不知道的API。

+0

什么是SOAP意图添加超过提交普通表格数据? – 2010-10-07 17:33:53

+0

我正在寻找一种将表单数据直接提交给我们的数据库的方法。 – BrianKE 2010-10-07 17:51:40

+0

SOAP如何做到这一点?您必须用处理SOAP消息来替换处理表单数据。 – 2010-10-07 22:02:34

回答

0

如果有比SOAP更好的解决方案?

如果您打算从JavaScript中使用JSON,那么首选。您可以结帐this example,它说明了如何公开一个启用JSON的WCF服务供jQuery AJAX使用。

+0

我不确定这会起作用,因为调用API的网页与API不在同一个服务器上,除非我误解了“同源策略”。 – BrianKE 2010-10-07 17:56:13

+0

那么你可以使用[JSON-P](http://remysharp.com/2007/10/08/what-is-jsonp/)或作为网桥的服务器端脚本。对于'JSON-P'来处理WCF,你可能需要一个自定义绑定。这是[MSDN上的示例](http://msdn.microsoft.com/zh-cn/library/cc716898.aspx)和[博客文章](http://jasonkelly.net/2009/05/using-jquery -jsonp-for-cross-domain-ajax -with-wcf-services /)。您应该知道,JSON-P仅适用于GET请求,这会限制您可以根据请求发送的数据量。 – 2010-10-07 17:57:42

+0

JSON-p很危险,它可能允许来自不同服务器的脚本在您的页面上运行恶意代码。如果您完全控制其他服务器,请继续操作,否则,您应该从服务器创建到另一台服务器的桥接。 – 2010-10-07 18:08:33

0

是的。您可以。

除了XHR的小问题/限制之外,从JS使用SOAP服务是完全“好”的。最大的问题是与XML“交易”,这可能比JSON更麻烦(但如果使用正确的工具(如XPath提取器)则不会有问题)。对于我的项目,我使用一个小的包装程序设置用于AJAX/XHR/SOAP调用(不是WSDL生成的),它可以采用自定义的编码/解码功能。

谷歌搜索显示了几个有希望的结果/例子,包括JavaScript SOAP Client

注:如果需要跨域访问的方法有几种,包括代理或较新的跨域XHR支持(不过,这些都需要客户端和/或服务器支持),或根据客户端,只是真的放松的设置。这些跨域考虑因素与一般与使用“REST”或其他Web服务API的情况相同。

相关问题