客户端(jquery)和服务器端(asp.net)应用程序都可以访问的服务

时间:2011-02-25 01:16:09

标签: c# jquery asp.net wcf asmx

问题陈述:客户端(jquery)和服务器端(asp.net)应用程序都可以访问的服务。 所有应用程序都是内部应用程序 注意:优先通信格式为JSON

说明

我需要通过提供CRUD操作的服务公开持久存储(数据库)。该服务需要通过jquery和服务器端应用程序(如asp.net webapplications)从客户端应用程序访问。

从我最初的研究中,我意识到如果我使用asp.net ajax asmx(或)ajax启用wcf服务,由于跨域/跨脚本问题,我将无法在其他应用程序中使用它(参考:calling asmx web service from jQuery)。

我看到了使用JSONP的变通办法,但我的理解是只支持获取请求,无论哪种方式都是hacky。

我想我到处都是。以下是我经历的一些链接:

http://forums.asp.net/p/1512786/3609834.aspx

How to call external webservice using jquery "jsonp"?

can jquery ajax call external webservice?

What is the best way to call a .net webservice using jquery?

What are some good examples of JQuery using JSONP talking to .net?

http://msdn.microsoft.com/en-us/library/cc716898.aspx

http://www.west-wind.com/Weblog/posts/107136.aspx

http://abcoder.com/javascript/jquery/jsonp-first-timer/

Post data to JsonP

http://donatstudios.com/JSONP

http://www.4guysfromrolla.com/articles/111710-1.aspx

我将转向处理JSON的自托管WCF Restful服务。这是一个可行的选择吗? Restful WCF服务有什么问题吗?有什么建议吗?

注意:我正在使用C#和.NET 3.5 SP1

请告知。

1 个答案:

答案 0 :(得分:1)

如果您托管Web服务,如果在同一个域上,您可以使用JQuery来调用它。 ScriptManager代理方法不是开箱即用的,但它可以通过Sys.Net.WebServiceProxy类完成。否则,最糟糕的情况是您创建专用服务,并启用ASMX或AJAX启用的WCF服务,以便为您提供生成的代理功能和跨域调用。