Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > ajax::get не возвращает данные


Автор: neosapient 9.7.2015, 10:59
Здравствуйте.

Написал тестовый скрипт, но он не работает. 

В строке ввода указан сайт. При нажатии на кнопку вызывается скрипт
Код

$(document).ready(function(){
    $("#butget").click(function (){
        var url = $("#url").val();
        $.get(
            url,
            "", 
            function(data){alert(data)}
        )
    });
});


Но по завершении работы скрипта, вызова alert(data) не происходит.
Помогите разобраться в чем ошибка и исправить её.
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

<head>
    <meta http-equiv="Content-type" content="text/html; charset=windows-1251" />
    <title>[Get] google.com</title>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
    <script>
        $(document).ready(function(){
            $("#butget").click(function (){
                var url = $("#url").val();
                $.get(
                    url,
                    "", 
                    function(data){alert(data)}
                )
            });
        });
    </script>
</head>
<body>
<p><input type="text" id="url" value="http://google.com">
<button id="butget">Get</button>
</p>
</body>
</html>

Автор: ksnk 10.7.2015, 20:59
Ошибка в том, что google.com, по отношению к сайту, с которого запускается ajax, является сторонним ресурсом. Такая операция, обращение к чужому ресурсу, называется XSS и закрыта. Напрочь закрыта. Броузерами. 
Чтобы проверить, что ajax в принципе работает - нужно сделать страничку на этом же сайте. Либо на своем. Также, рекомендуется внимательно погуглить про `cross domain ajax`

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)