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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как вызвать AJAX с другого сайта??! 
:(
    Опции темы
csprogrammer
Дата 25.12.2006, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



У меня стоит ASP.NET AJAX 1.0 RC. Как из аякс-приложения вызвать веб-сервис с другого веб-сервера? Я создаю ASP.NET AJAX-Enabled Web Site. Далее если я добавляю веб-сервис прямо в проект, всё прокатывает, а стоит мне только поменять ссылку (в теге <asp:ServiceReference Path="http://localhost/ajax_site2/WebService.asmx" />) на такойже вебсервис, но по другому адресу, ничего не работает. Выдаётся ошибка javascript: WebService - определение отсутствует (WebService разумеется это название класса веб-сервиса).

Это сообщение отредактировал(а) csprogrammer - 25.12.2006, 17:27
PM MAIL   Вверх
Mymik
Дата 25.12.2006, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



csprogrammer, тебе нужно пересоздавать прокси класс, а не только менять ссылку в WDSL


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
6atoh
Дата 26.12.2006, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Лучше сразу переколбасить конструктор прокси-класса чтобы он принимал url в качестве параметра.
PM MAIL ICQ   Вверх
Pankon
Дата 26.12.2006, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Если нужно показать результат вызова WebService с другого сайта, то я бы делал все-таки AJAX вызов на "родной" сервер, где и вызывал бы WebService с другого сайта...

ЗЫ. Может быть не совсем оригинально, но несколько моих проектов благополучно работают по такой схеме.
PM MAIL   Вверх
csprogrammer
Дата 26.12.2006, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Pankon, спасибо, у меня была такая мысль, но хотелось бы всё-таки избежать избыточного кода.

Mymik, 6atoh, имеется в виду прокси на C# или на javascript? Если имеется в виду прокси на javascript, то где взять его текст, он же вроде генерируется на лету? А если имеется в виду прокси на C# то при чём здесь он? В данном случае в моём проекте даже экземпляр класса прокси нигде не создаётся.
PM MAIL   Вверх
Mymik
Дата 26.12.2006, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(csprogrammer @  26.12.2006,  08:49 Найти цитируемый пост)
В данном случае в моём проекте даже экземпляр класса прокси нигде не создаётся.


кхм... а как ты тогда вообще обращаешься к сервису ??? O_o Образение к сервису возможны только с помощью прокси класса...

При запуске проекта asp.net скорее всего проверяет полную работоспособность и компилируемость всех файлов cs, на которые идет ссылки, типа Web Refferent, и просто код из App_Code... И возможно именно по этой причине проект вообще не стартует...

Добавлено @ 20:16 
csprogrammer,  попробуй пересоздать прокси класс для своего веб сервиса, и потом опять запустить свой проект... Если он отлично запуститься, тогда гоу искать различия в прокси классах и тогда в записке по установки сайта напишешь что нужно будет изменить. Если же не в этом проблема... значит... значит ищи ошибки в своем коде.


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
csprogrammer
Дата 27.12.2006, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я чувствую что у меня каша в голове. Давайте попробуем начать сначала. Возьмём пример Exception-а:
пример Hello World
Где у него там на C# создаётся объект класса веб-сервиса? Ни где! Т.к. веб сервис вызывается не из C#, а из javascript:
    // Мы вызываем наш Web-сервис, передавая ему
    // функцию, которая вызывается по получении ответа
    AtlasTest.WebService.HelloWorld(onRequestComplete);
Вот и у меня также сделано. И вот здесь то и возникает ошибка. Если веб-сервис находится на другом веб-сервере, то браузер говорит, что не знаю что такое AtlasTest (или WebService, если namespace не использовать). А тот же самый веб-сервис, если находится в папке с asp-приложением работает без проблем.
PM MAIL   Вверх
Naum
Дата 27.12.2006, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

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



Я только начинаю на ASP.NET писать. Но могу предположить. Насколько я понимаю, если файлы в одной папке, это то же самое что для невеб smile приложений одна сборка. Т.е. если сервис перенесен на другой сервер, это то же самое, что он в другой сборке, а если он в другой сборке, то нужен Refernce на него. Не так ли?


--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
csprogrammer
Дата 27.12.2006, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я тоже недавно пишу на ASP.NET, но могу предположить что вы, дорогой Naum, заблуждаетесь smile При чём здесь вообще референс, если референс это элемент проекта на C#, а мой веб-сервис запускается браузером, который ваще даже и не подозревает о том что на свете есть такие вещи как референсы. Он знает только что есть url который ему запросить при помощи яваскрипта. Так вот какая ему ёлки-палки разница куда этот url указывает я никак понять не могу. Народ говорит что связано с безопасностью, типа яваскрипт не может на чужие сайты лазить. Но не знаю на сколько это соответствует действительности.
PM MAIL   Вверх
Zakonnic
Дата 6.1.2007, 02:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Эээ... Не уверен, что это еще кому-нибудь нужно, но...
Код

// Мы вызываем наш Web-сервис, передавая ему  
// функцию, которая вызывается по получении ответа    
AtlasTest.WebService.HelloWorld(onRequestComplete);

В указанном коде AtlasTest - это локальный namespace, 
Цитата(csprogrammer @  27.12.2006,  08:45 Найти цитируемый пост)
Где у него там на C# создаётся объект класса веб-сервиса?

Мне каааааажется ( smile ), что WebService - это тот самый класс.
Код

namespace AtlasTest
{

    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    public class WebService : System.Web.Services.WebService
    {
        [WebMethod]
        public string HelloWorld()
        {
            return "Hello, World!";
        }
    }
}

Короче, точно не скажу, но если ты юзаешь в локальном java метод класса, то видимо, этот java-класс создается автоматически из кода на C# (вообще, дело темное). Отсюда вывод - не известно, откуда этот класс берет путь к сервису.

Мой совет - добавить Web Refference на этот сервис по нужному адресу и прописать ссылку на него не руками, а через дизайнер или что-то подобное (через средства VS короче). Почему-то мне кажется, что такая возможность должна быть.

ЗЫ: Просьба громко не кричать. Все вышесказанное - чистые домыслы и не проверено практикой.

--------------------
...и никогда не пишите в комментариях правду
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

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

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

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


 




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


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

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