jQuery onsuccess не работает, даже если firebug показывает ответ нормально - PullRequest
1 голос
/ 18 апреля 2011

У меня проблема с отображением окна предупреждения внутри функции onsuccess, вызываемой $ .ajax. Я проверил firebug и получил ответ в формате json, но по какой-то причине приходит предупреждение, и я не могу открыть console.log (jsonp). Ниже приведен код:

$.ajax({

        type: "GET",
        url: "http://maps.googleapis.com/maps/api/directions/json?origin=ajax&destination=toronto&region=ca&avoid=tolls&sensor=false",
        dataType: "jsonp",
        success: function(jsonp) {
              alert(jsonp);
            console.log(jsonp);

        }
    });

});

1 Ответ

1 голос
/ 18 апреля 2011

Прочитайте, здесь ясно написано: http://api.jquery.com/jQuery.ajax/

По умолчанию все запросы отправляются асинхронно (т.е. это установлено на true по умолчанию). Если тебе надо синхронные запросы, установите эту опцию ложно. Междоменные запросы и dataType: запросы "jsonp" не Поддержка синхронной работы. Заметка что синхронные запросы могут временно заблокировать браузер, отключение любых действий во время запрос активен.

упоминается еще одна вещь

"jsonp": загрузка в блок JSON с использованием JSONP. Добавит дополнительный "? Callback =?" в конце вашего URL, чтобы указать обратный вызов.

Если вы хотите форсировать кросс-домен запрос (например, JSONP) на тот же домен, установите значение crossDomain к истине. Это позволяет, например, перенаправление на стороне сервера на другой домен

Справочные ссылки:

PHP-JSONP

CROSS DOMAIN DATA с jsonp

JavaScript: как мне создать JSONP?

...