2011-02-25 58 views
1

問題描述:客戶端(jQuery)和服務器端(asp.net)都可以訪問的服務。淨)應用程序。 所有的應用程序都是內部應用程序。 注:通訊Preferrable格式是JSON客戶端(jQuery)和服務器端(asp.net)應用程序都可以訪問的服務

說明:

我需要通過提供CRUD操作服務公開持久性存儲(數據庫)。該服務需要通過jQuery和客戶端應用程序(如asp.net web應用程序)進行訪問。

從我最初的研究中,我意識到如果我使用asp.net ajax asmx(或)ajax啓用wcf服務,由於跨域/跨腳本問題,我將無法在其他應用程序中使用它(ref: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

我會朝着自託管WCF RESTful服務與JSON交易。這是一個可行的選擇嗎?有關Restful WCF服務的任何問題?有什麼建議麼 ?

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

請指教。

回答

1

如果您託管一個Web服務,如果在同一個域中,您可能可以使用JQuery來調用它。 ScriptManager代理方法無法正常工作,但可以通過Sys.Net.WebServiceProxy類來完成。否則,最糟糕的情況是您創建了您的專用服務,並且啓用了支持ASMX或AJAX的WCF服務將其包裝爲您提供生成的代理功能和跨域調用。

+0

謝謝。不,它不會在同一個域中。使用ASMX(或)AJAX Enabled WCF服務封裝專用服務調用的問題將需要在任何地方複製。多個應用程序將使用此服務,因此每個應用程序,即需要使用jQuery訪問它的每個應用程序都必須複製代碼。挑戰在於重用可重用性,但仍然保持靈活性。我錯過了什麼? – StudentForever 2011-02-25 01:47:29

+0

不,這正是問題所在,我擔心如果在一個單獨的域上,它不會離開它。這是一個瀏覽器限制(相同的域)作爲安全功能。 – 2011-02-25 13:20:34