powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Нестандартно к веб-службе через AJAX
4 сообщений из 4, страница 1 из 1
Нестандартно к веб-службе через AJAX
    #36021757
SergASh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем!

Есть веб-служба, принимающая несколько аргументов строкового типа. Требуется со страницы к ней обратиться. Можно ли это сделать не прибегая к аяксному способу через XHTTPRequest, а при помощи сабмита формы? Дело в том, что служба должна принять файл от пользователя. Это невозможо через XHTTPRequest, но работает через сабмит если потом поковыряться в Respons'е. Проблема в том, что параметры свои служба ожидает в формате JSON, как их передаёт XHTTPRequest, а простой сабмит передаёт их в совсем другом виде. Я понимаю, что и параметры можно выковырять из Respons'а, но не хочется (прощай типизация как минимум).

Собственно, вопрос в том, как заставить службу саму распарсить параметры не из JSON-формата, а из строки вида
Код: plaintext
first= 111 &second= 222 
Это можно?

Спасибо.
...
Рейтинг: 0 / 0
Нестандартно к веб-службе через AJAX
    #36021763
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если служба твоя, то почему может быть невозможно?
...
Рейтинг: 0 / 0
Нестандартно к веб-службе через AJAX
    #36021780
SergASh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Служба моя. Но вот механизм преобразования данных POST в параметры, с которыми метод службы вызывается, это уже не мое. Я так понимаю это часть ASP.NET.
...
Рейтинг: 0 / 0
Нестандартно к веб-службе через AJAX
    #36021825
SergASh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чтоб не быть голословным. Вот метод службы
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
  [WebService( Namespace = "http://tempuri.org/" )]
  [WebServiceBinding( ConformsTo = WsiProfiles.BasicProfile1_1 )]
  [System.ComponentModel.ToolboxItem( false )]
  [System.Web.Script.Services.ScriptService]
  public class ListingService : WebService
  {
    [WebMethod]
    public string SampleMethod( string first, string second )
    {
      return string.Format( "Hello, {0} {1}!", first, second );
    }
  }
Вот на странице мы ее зовем черех аякс. Тут используется jQuery, но это не принципиально
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
function callService()
{
  var data = { first: "Ivan", second: "Petrov" };
  $.ajaxDotNet( g_ListingServicePath + "/SampleMethod",
                { verb: "POST",
                  data: data,
                  success: function( obj ) 
                  {
                    alert( "Call succeeded: «" + obj.d + "»" );
                  }
                } 
              );

}
И вот что мы видим в фидлере
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
POST /Services/ListingService.asmx/SampleMethod HTTP/ 1 . 1 
Host: localhost
User-Agent: Mozilla/ 5 . 0  (Windows; U; Windows NT  5 . 2 ; en-US; rv: 1 . 9 . 0 . 10 ) Gecko/ 2009042316  AdCentriaIM/ 1 . 7  Firefox/ 3 . 0 . 10  (.NET CLR  3 . 5 . 30729 )
Accept: text/html,application/xhtml+xml,application/xml;q= 0 . 9 ,*/*;q= 0 . 8 
Accept-Language: en-us,en;q= 0 . 5 
Accept-Encoding: gzip,deflate
Accept-Charset: ISO- 8859 - 1 ,utf- 8 ;q= 0 . 7 ,*;q= 0 . 7 
Keep-Alive:  300 
Connection: keep-alive
Content-Type: application/json; charset=utf- 8 
Content-Length:  34 
Pragma: no-cache
Cache-Control: no-cache

{"first":"Ivan","second":"Petrov"}

А в случае простого сабмита контент будет в виде
Код: plaintext
first=Ivan&second=Petrov

Служба такой формат не ждёт насколько я понимаю, точнее не сама служба, а тот код, который ее вызывает уже на сервере
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Нестандартно к веб-службе через AJAX
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]