Получите сериализованный в данных php с помощью ajax - PullRequest
0 голосов
/ 04 января 2012

У меня есть скрипт php, который возвращает сериализованные данные php.И я пытаюсь получить эти данные с помощью метода $ .ajax () из jQuery 1.7. Здесь является примером.

$.ajax({
    url: 'http://input.name/get.php?do=lookup' + '&domain=twittorama&tlds=.ru,.com,.net,.comf.ru',
    type: 'GET',
    dataType: 'text',
    cache: 'false',
    complete: function(res) {
        alert('COMPLETE() done');
        console.log(res);
    }
});

В консоли я вижу только

Object { readyState=0, status=0, statusText="error"}

Итак, что я делаю не так?Не могли бы вы мне помочь?

UPD

Интересное замечание: если я использую JSONP, запрос dataType может принимать данные, но не может их обрабатывать. Вот пример .

$.ajax({
    url: 'http://input.name/get.php?do=lookup',
    data: 'domain=twittorama&tlds=.ru,.com,.net,.comf.ru',
    dataType: 'jsonp',
    cache: false,
    success: function(data) {
        alert("Data: "+data);
    },
    error: function(jqXHR, textStatus, errorThrown) {
        alert("Error: "+textStatus);
        console.log(jqXHR);
    }
});

Ответы [ 3 ]

2 голосов
/ 04 января 2012

Ваш код, вероятно, в порядке, но вы пытаетесь нарушить ту же политику происхождения .По сути, если ваш сайт http://aaa.com/, вы не можете сделать так, чтобы AJAX вызывался на http://bbb.com/.

. Есть несколько способов обойти это:политика в javascript без серверных сценариев

Но большинство из них требуют, чтобы обе стороны играли хорошо.

2 голосов
/ 04 января 2012

Вместо complete: используйте success:, тогда res будет возвращенными данными из вашего запроса ajax.

Не забудьте также использовать error:, если с вашим вызовом произошла ошибка, так как кажется, что в вашей консоли есть выход.

Код:

$.ajax({
    url: 'http://input.name/get.php?do=lookup',
    data: 'domain=twittorama&tlds=.ru,.com,.net,.comf.ru',
    cache: false,
    success: function(data) {
        alert("Data: "+data);
    },
    error: function(jqXHR, textStatus, errorThrown) {
        alert("Error: "+textStatus);
        console.log(jqXHR);
    }
});
1 голос
/ 04 января 2012

Ответ является вторым параметром полной функции:

$.ajax({
    url: 'http://input.name/get.php?do=lookup' + '&domain=twittorama&tlds=.ru,.com,.net,.comf.ru',
    type: 'GET',
    dataType: 'text',
    cache: 'false',
    complete: function(res,response) {
        alert('COMPLETE() done');
        console.log(response);
    }
});

Подробнее: http://api.jquery.com/jQuery.ajax/

Вам также следует рассмотреть возможность использования JSON, а не сериализованных данных php

...