【问题标题】:Service that can be accessed by both client-side (jquery) and server-side (asp.net) applications客户端 (jquery) 和服务器端 (asp.net) 应用程序都可以访问的服务
【发布时间】:2011-07-04 00:13:53
【问题描述】:

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

说明:

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

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

我看到了使用 JSONP 的解决方法,但我的理解是只支持 get 请求,而且无论哪种方式都是 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

请指教。

【问题讨论】:

    标签: c# jquery asp.net wcf asmx


    【解决方案1】:

    如果您托管一个网络服务,如果在同一个域中,您可以使用 JQuery 来调用它。 ScriptManager 代理方法不能开箱即用,但可以通过 Sys.Net.WebServiceProxy 类来实现。否则,最坏的情况是您创建了自己的专用服务,并让一个支持 ASMX 或 AJAX 的 WCF 服务包装它,为您提供生成的代理功能和跨域调用。

    【讨论】:

    • 谢谢。不,它不会在同一个域中。使用 ASMX(或)启用 AJAX 的 WCF 服务包装专用服务调用的问题将是这需要在任何地方复制。多个应用程序将使用此服务,因此每个应用程序,即需要使用 jquery 访问它的每个应用程序都必须复制代码。挑战在于实现可重用性,但仍保持灵活性。我错过了什么吗?
    • 不,这正是问题所在,如果在单独的域中,恐怕没有什么可以解决的。这是作为安全功能的浏览器限制(同一域)。
    猜你喜欢
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多