Сервис, к которому могут обращаться как клиентские (jquery), так и серверные (asp.net) приложения - PullRequest
1 голос
/ 25 февраля 2011

Проблема: сервис, к которому могут обращаться как клиентские (jquery), так и серверные (asp.net) приложения. Все приложения являются внутренними приложениями. Примечание: предпочтительный формат общения - JSON

Описание:

Мне нужно предоставить постоянное хранилище (базу данных) через сервис, который обеспечивает операции CRUD. Служба должна быть доступна как из клиентских приложений через jquery, так и из серверных приложений, таких как веб-приложения asp.net.

Из моего первоначального исследования я понял, что если я перейду к wcf-сервису с поддержкой asj.net ajax asmx (или) ajax, я не смогу использовать его в других приложениях из-за междоменных / кросс-скриптинговых проблем ( ref: вызов веб-службы asmx из jQuery ).

Я видел обходные пути с использованием JSONP, но я понимаю, что поддерживаются только запросы на получение, и это в любом случае хакер.

Я думаю, что я повсюду. Вот некоторые ссылки, по которым я прошел:

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

Как вызвать внешний веб-сервис с помощью jquery "jsonp"?

может ли jquery ajax вызвать внешний веб-сервис?

Каков наилучший способ вызова веб-службы .net с использованием jquery?

Какие примеры JQuery используют JSONP для общения с .net?

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

http://www.west -wind.com / Weblog / сообщений / 107136.aspx

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

Публикация данных в JsonP

http://donatstudios.com/JSONP

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

Я направляюсь к самодостаточному сервису WCF Restful, который работает с JSON. Это жизнеспособные варианты? Какие-либо проблемы с Restful WCF Service? Есть предложения?

Примечание: я использую C # и .NET 3.5 SP1

Пожалуйста, сообщите.

1 Ответ

1 голос
/ 25 февраля 2011

Если вы размещаете веб-службу, если находитесь в том же домене, вы можете использовать JQuery для ее вызова. Прокси-подход ScriptManager не работает "из коробки", но это возможно сделать через класс Sys.Net.WebServiceProxy. В противном случае в худшем случае вы создадите выделенную службу и включите ее в службу WCF с поддержкой ASMX или AJAX, чтобы предоставить вам сгенерированные функции прокси и междоменные вызовы.

...