Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ВебСервис Как спросить у него с клиентской стороны, в ASP.NET 2.0... 
V
    Опции темы
JaguarSmith
Дата 22.6.2006, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 16.1.2005

Репутация: 1
Всего: 1



Здравствуйте!

Как оформить запрос к веб-сервису через Javascript?

Я вроде разобрался как это делается на локальном компе через POST - там что-то вроде: 
http://localhost/моё_приложение/мой_вебсервис.asmx/myfunc?parametr=value

но как только я выгрузил проект на сервер всё перестало работать! 

 smile Как правильно делается запрос к вебсервису?

Зы. наверно надо было постить в javascript - но вроде вебсервис вешь спецефическая для ASP.NET... 
PM MAIL YIM   Вверх
Kurt
Дата 22.6.2006, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 2
Всего: 36



Честно говоря, не совсем понимаю, что значит обратиться к веб-сервису из JavaScript'a. Что-то а-ля Ajax?

Цитата

Я вроде разобрался как это делается на локальном компе через POST - там что-то вроде: 
http://localhost/моё_приложение/мой_вебсер...?parametr=value


Если я правильно понял задачу, то так:
http://адрес_сервера_куда_ты_выложил_проект/моё_приложение/мой_вебсервис.asmx/myfunc?parametr=value

Цитата

вроде вебсервис вешь спецефическая для ASP.NET... 

Ну почему же? Веб-сервис можно написать и на Java, и на PHP - да в принципе, на любом серверном языке. 


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
JaguarSmith
Дата 22.6.2006, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 16.1.2005

Репутация: 1
Всего: 1



 smile Ну да я какраз в Аякс пытаюсь врубиться. Запрос идёт черeз XMLHttpRequest из скрипта.
Цитата
Если я правильно понял задачу, то так:
http://адрес_сервера_куда_ты_выложил_проект/моё_приложение/мой_вебсервис.asmx/myfunc?parametr=value

Локально всё работает а вот к вебсервису на удалённом сервере обратиться не удаётся...  smile  по крайней мере в ASP.NET 2.0...

Делаю вот так:

Код

 var service ="http://localhost/MySite/GuestBook/JGuestBook.asmx"     // если сделать так то всё работает
 // var service ="http://www.MySite.ru/GuestBook/JGuestBook.asmx"   // а так - совсем не работает!

function CheckBookUpdated()
{
 var url = service + "/GetBooksSize";
 var params = "BookName=" + GuestBook ;
 var httpMetod = "POST";
 BookSizeReq = new ajax.ContentLoader(url,BookUpdated,null,httpMetod,params,null);
}
function BookUpdated()
{
....
}
Код

// код взят из книги AJAX в действии...
var ajax=new Object();

ajax.READY_STATE_UNINITIALIZED=0;
ajax.READY_STATE_LOADING=1;
ajax.READY_STATE_LOADED=2;
ajax.READY_STATE_INTERACTIVE=3;
ajax.READY_STATE_COMPLETE=4;


/*--- content loader object for cross-browser requests ---*/
ajax.ContentLoader=function(url,onload,onerror,method,params,contentType){
  this.req=null;
  this.onload=onload;
  this.onerror=(onerror) ? onerror : this.defaultError;
  this.loadXMLDoc(url,method,params,contentType);
  this.resp = null
}

ajax.ContentLoader.prototype.loadXMLDoc=function(url,method,params,contentType){
  if (!method){
    method="GET";
  }
  if (!contentType && method=="POST"){
    contentType='application/x-www-form-urlencoded';
  }
  if (window.XMLHttpRequest){
    this.req=new XMLHttpRequest();
  } else if (window.ActiveXObject){
    this.req=new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (this.req){
    try{
      var loader=this;
      this.req.onreadystatechange=function(){
        ajax.ContentLoader.onReadyState.call(loader);
      }
      this.req.open(method,url,true);
      if (contentType){
        this.req.setRequestHeader('Content-Type', contentType);
      }
      this.req.send(params);
    }catch (err){
      this.onerror.call(this);
    }
  }
}

ajax.ContentLoader.onReadyState=function(){
  var req=this.req;
  var ready=req.readyState;
  if (ready==ajax.READY_STATE_COMPLETE){
    var httpStatus=req.status;
    if (httpStatus==200 || httpStatus==0){
      this.resp = req.responseText;
      this.onload.call(this);
    }else{
      this.resp = dataload_error
      this.onerror.call(this);
    }
  }
}

ajax.ContentLoader.prototype.defaultError=function(){
  
  tmp.innerText = "error fetching data!"
                + "\n\nreadyState:"+this.req.readyState
                + "\nstatus: "+this.req.status
                + "\nheaders: "+this.req.getAllResponseHeaders()
                + "\nResponse: "+this.req.responseText; 
  return true;
}


Цитата

Цитата

Цитата 

вроде вебсервис вешь спецефическая для ASP.NET... 


Ну почему же? Веб-сервис можно написать и на Java, и на PHP - да в принципе, на любом серверном языке.


Я имел ввиду способ общения с вебсервисом и всякие форматы данных...


 smile Собственно меня и интересует как сформировать запрос так чтобы был ответ? smile 
     

Это сообщение отредактировал(а) JaguarSmith - 23.6.2006, 00:42
PM MAIL YIM   Вверх
Kurt
Дата 23.6.2006, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 2
Всего: 36



Наверное, зря спрашиваю, но думаю, в начале все же стоит уточнить:
веб-сервис на удаленном сервере вообще корректно поставлен и настроен? Ты пробовал к нему обратиться с помощью других клиентов? Нормально отрабатывает? 


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
JaguarSmith
Дата 23.6.2006, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 16.1.2005

Репутация: 1
Всего: 1



Да! Проверил! Вебсервис на удалённом сервере работает...

http://www.jaguarsmith.ru/GuestBook/JGuestBook.asmx  

Код

        Dim m As New ru.jaguarsmith.www.JGuestBook
        Label1.Text = m.GetBooksSize("granpik")


Возвращает значение 3 как и должен... 

Это сообщение отредактировал(а) JaguarSmith - 23.6.2006, 01:35
PM MAIL YIM   Вверх
JaguarSmith
Дата 30.6.2006, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 16.1.2005

Репутация: 1
Всего: 1



 smile Решилось!
Подсказали в разделе про javascript: http://forum.vingrad.ru/index.php?showtopic=101919  smile  
PM MAIL YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0685 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.