Функция jquery $ .ajax с использованием переменной URL - PullRequest
2 голосов
/ 23 июля 2010
var array = new Array();
$.get('comics.txt', function(data) {
    array = data.split(",");
    for(var i = 0; i < array.length; i++)
    {
        var $page = array[i];
        $.ajax({
            url: $page,
            success: function(data) {
                alert(data);
            }
        });
    }
});

comics.txt - файл, содержащий несколько URL-адресов, разделенных запятыми.

В приведенном выше коде вызов $ .ajax не работает; $ page - это правильный URL, но он не работает в контексте. alert (data) вызывает появление пустого поля предупреждения. Мне нужна помощь в поиске способа получения данных с каждой страницы в массиве под названием массив.

Спасибо заранее.

Ответы [ 3 ]

6 голосов
/ 23 июля 2010

является $page URL-адресом в вашем домене? ... если нет, вы не можете использовать ajax ...

такая же политика домена


Если так, как я могу получить данные через javascript с внешних URL-адресов?

у вас есть данные на вашем сервере ...

например ..

var array = new Array();
$.get('comics.txt', function(data) {
    array = data.split(",");
    for(var i = 0; i < array.length; i++)
    {
        var $page = array[i];
        $.ajax({
            url: 'your/server/url.php?page=' + $page,
            success: function(data) {
                alert(data);
            }
        });
    }
});

your/server/url.php может получить страницу для вас ...

0 голосов
/ 23 июля 2010

Вы можете межсайтовый сценарий, динамически добавляя элемент сценария в DOM с атрибутом src, указывающим куда угодно;если все, что указано в src, возвращает JavaScript (protip: выполнить предопределенную функцию в конце XSS для AJAX-подобного поведения), это должно работать.

Site 1:

<script type="text/javascript">
$(document).ready( function() {
   $('body').append($("<script>").attr('src', "http://mydomain.com/xss.js"));
} );

function alerty (thing) {
    alert(thing);
}
</script>

Сайт 2 (xss.js):

var mystring = "hello";

if (typeof(alerty) != "undefined") {
   alerty(mystring);
}

Очевидно, что URL-адрес не обязательно должен быть простым файлом - это может быть JavaScript, который создается PHP на основе запросов GET в URL-адресе.Также это предполагает, что у вас есть контроль над удаленными данными, чего у вас нет.

0 голосов
/ 23 июля 2010

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

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