JQuery AJAX GET возвращает пустой файл - PullRequest
1 голос
/ 14 января 2010

Я пытаюсь захватить http://lib.softvoyage.com/cgi-bin/gate_dest_hotels.xml?code_ag=nwi&alias=tpi&language=en&with_cdata=y через AJAX, однако он продолжает возвращать nadda (скриншот firebug здесь: http://img683.imageshack.us/img683/3279/firebug.jpg)

Ниже приведен код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
        <title>Search Form</title>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    </head>
    <body>
        <form method="post" action="#">
            <label for="gateway_dep">Leaving From:</label>
            <select id="gateway_dep" name="gateway_dep">
                <option value="">Select a gateway</option>
                <option value=""></option>
                <option value="">Loading gateways</option>
            </select>
        </form>
        <script type="text/javascript">
        <!--
            $(document).ready(function() {
                $.ajax({
                    url:"http://lib.softvoyage.com/cgi-bin/gate_dest_hotels.xml?code_ag=nwi&alias=tpi&language=en&with_cdata=y",
                    cache:false,
                    dataType:"text",
                    type:"GET",
                    success:function(xml) {
                        alert(xml);
                    }
                });
            });
        -->
        </script>
    </body>
</html>

Ответы [ 2 ]

1 голос
/ 14 января 2010

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

В качестве альтернативы у вас может быть прокси на стороне сервера, который выполняет запрос get на стороне сервера, где не существует ограничений AJAX, и затем возвращает данные на вашу страницу.

0 голосов
/ 14 января 2010

Вы не можете отправлять запросы через $ .ajax-вызов на другой домен, хороший пост для рабочих раундов здесь: http://www.wait -till-i.com / 2010/01/10 / loading-external -content-with-ajax-using-jquery-and-yql / Это мера безопасности, позволяющая предотвратить, например, ваше объявление / iframe на странице, собирающую мою регистрационную информацию на странице, затем загружающую ее на другой сайт. *

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

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