Отправка информации между JavaScript и веб-сервисами с использованием AJAX - PullRequest
1 голос
/ 22 июня 2011

Хорошо, поэтому я использую веб-службы Microsoft и AJAX для получения информации из базы данных SQL для использования со сценарием Java на стороне клиента.И мне интересно, какой метод самый лучший.Прежде чем я начал работать над проектом, веб-сервисы были настроены так, чтобы они возвращали список C #, заполненный некоторыми объектами.Эти переменные объектов (целые, строки и т. Д.) Содержат данные, которые я хочу использовать.Конечно, насколько я знаю, java-скрипт мало что может с этим поделать.

Затем я изменил веб-сервис для возврата 2D-массива, но java-скрипт запутался, и, насколько мне известно,Знание не может обрабатывать 2D-массив, возвращенный из C #.Затем я попытался использовать обычный массив, но потом обнаруженное свойство длины массива в JS не переносится, поэтому я не смог предварительно выполнить цикл for для всех элементов, потому что не было никакого способа узнать, кактам было много элементов.

Единственное, что я могу сказать, - это вернуть строку со специальными символами для разделения данных, но это кажется слишком запутанным.Какие-либо предложения?Заранее спасибо!

Ответы [ 3 ]

1 голос
/ 22 июня 2011

EDIT

Во-первых, я предполагаю, что вы используете веб-сервис на основе SOAP. В SOAP более или менее я говорю о веб-сервисе (в данном случае C #), который генерирует XML-сообщения для приема запросов данных и отправки результатов этих запросов. Подробнее о SOAP вы можете прочитать здесь: http://en.wikipedia.org/wiki/SOAP

Переход от веб-службы C # к клиентскому приложению C # довольно прост, поскольку Visual Studio автоматически сгенерирует потребительский класс для вашего клиентского приложения. Пример этого здесь: http://my.execpc.com/~gopalan/dotnet/webservices/webservice_csharp_client.html (хотя я думаю, что Visual Studio имеет лучшую интеграцию, чем этот пример).

Более или менее, ваш JavaScript должен будет сгенерировать соответствующий запрос SOAP (XML) для вашего WebService, чтобы понять, какой метод вы хотите вызвать. После того, как он был вызван, вам нужно будет использовать JavaScript для анализа ответа (также XML) для данных, которые вы хотите ( jQuery отлично подходит для этого ).

Вот библиотека, которая поможет вам сделать запрос и получить ответ от вашего веб-сервера. http://www.ibm.com/developerworks/webservices/library/ws-wsajax/

Вот аналогичный вопрос на ту же тему с довольно хорошим примером: Простейший пример SOAP

Дайте мне знать, если это то, что вы ищете. Надеюсь, это поможет!

ORIGINAL

Ваши данные (2D Array, List и т. Д.) Сериализуются в XML.

Так что вам понадобится ваш Javascript для синтаксического анализа XML, а не для его обработки как литеральных объектов C #.

ИЛИ как сказал keatch, верните JSON

0 голосов
/ 22 июня 2011

Попробуйте это к вашим услугам:

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<SomeObject> name()
{
    ....
}
0 голосов
/ 22 июня 2011

Попробуйте вернуть массив JSON .JSON - это стандартная нотация для передачи объектов javascript.

См. Ссылку для справки: http://www.codeproject.com/KB/aspnet/CSJSON.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...