Каков наилучший способ вызвать веб-сервис .net с помощью jquery? - PullRequest
4 голосов
/ 09 января 2009

Я бы хотел вызвать веб-сервис .net из другого домена, используя только jquery.

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

Причина, по которой я спрашиваю это, заключается в том, что я лишь незначительно контролирую эту область. Поэтому я могу вносить только ограниченные изменения.

Ответы [ 6 ]

3 голосов
/ 11 января 2009

Я думаю, что ваша проблема заключается в том, чтобы позвонить на другой домен. Вы должны изменить тип данных вашего запроса jQuery на jsonp.

Взгляните на эту ссылку

3 голосов
/ 09 января 2009

Браузер не разрешает вызовы XMLHTTPRequest между доменами в конфигурации по умолчанию. Вы можете изменить настройки браузера, чтобы сделать определенные вызовы успешными, но это считается плохой практикой.

Для выполнения междоменных запросов вы можете

1 голос
/ 09 января 2009

Обычно ответ отрицательный, если вы говорите о веб-службах ASPX (в основном, веб-сервис, размещенный на сайте ASP.NET).

Это первое попадание в Google при поиске "webquervice call jquery", которое должно дать вам больше информации:

http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/ вы используете для размещения веб-службы).

0 голосов
/ 09 января 2009

Будет ли лучше использовать: Jquery.getJSON

См: JQuery.getJSON

В связи с этим возникает вопрос о том, как выводить данные, совместимые с JSON, с помощью веб-службы или аналогичного механизма.

0 голосов
/ 09 января 2009

Вот пример:

$.post("CodersWS.asmx/DeleteBook", { id_book: parseInt(currBookID, 10) }, function(res) {
///do something with returned data: res
});

В приведенном выше примере я вызываю веб-службу с именем CodersWS.asmx, а внутри него используется WebMethod DeleteBook ... Я также передаю параметр с именем id_book.

Также не забудьте добавить этот фрагмент к вашему web.config, иначе вы не сможете получить доступ к веб-сервису таким образом:

<system.web>
    <webServices>
        <protocols>
            <add name="HttpGet"/>
            <add name="HttpPost"/>
        </protocols>
    </webServices>
</system.web>
0 голосов
/ 09 января 2009

Во-первых, я не совсем уверен, будет ли межсайтовый ajax, реализованный в jquery, работать во всех браузерах (firefox 3) просто так. Во-вторых, я предполагаю, что вы говорите о веб-сервисе SOAP. Я бы предпочел не делать этого. Это будет очень сложно реализовать.

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