Как мне вызвать веб-сервис из JavaScript - PullRequest
11 голосов
/ 23 сентября 2008

Скажем, у меня есть веб-сервис http://www.example.com/webservice.pl?q=google, который возвращает текст "google.com". Мне нужно вызвать этот веб-сервис (http://www.example.com/webservice.pl) из модуля JavaScript с параметром (q = google) и затем использовать возвращаемое значение ("google.com") для дальнейшей обработки.

Какой самый простой способ сделать это? Я новичок в JavaScript, поэтому любая помощь очень ценится.

Ответы [ 2 ]

14 голосов
/ 23 сентября 2008

РЕДАКТИРОВАТЬ:

Прошло десять лет с тех пор, как я ответил на этот вопрос, и теперь у нас есть поддержка междоменного XHR в форме CORS .

Для любого современного приложения рассмотрите возможность использования fetch для выполнения ваших запросов. Если вам нужна поддержка старых браузеров, вы можете добавить polyfill .

Оригинальный ответ:

Имейте в виду, что вы не можете делать запросы через домены. Например, если ваша страница находится на yourexample.com, а веб-служба - на myexample.com, вы не можете напрямую запросить ее.

Если вам нужно сделать такой запрос, вам нужно настроить прокси на вашем сервере. Вы бы запросили эту прокси-страницу, и она извлечет данные из веб-службы и вернет их на вашу страницу.

12 голосов
/ 23 сентября 2008

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

$.get(
    "http://xyz.com/webservice.pl",
    { q : "google" },
    function(data) {
        alert(data);  // "google.com"
    }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...