Как отладить событие JSONP AJAX - PullRequest
1 голос
/ 05 августа 2011

Я пытаюсь получить запрос JSONP AJAX, но у меня проблемы с выяснением, почему он не работает. Прямо сейчас у меня есть этот звонок

$.getJSON(server_path+"formproxy.php?"+$(form).serialize()+"&action="+form.action+"&callback=?", function(data, status, xhr) {
    alert(data);
});

но когда я запускаю скрипт, кажется, ничего не происходит. Лучшее, что я могу понять, это то, что запрос jsonp работает с ошибкой, но поскольку это запрос jsonp, он фактически не сообщает об ошибке, что сильно мешает моей отладке.

Я играл с

$.ajaxSetup({
    "error":function() {
        alert("error");
    }
});

и

$(document).ajaxError(function(e, xhr, settings, exception) {
    alert('failed');
});

но я не могу заставить их сработать.

Я вывел целевой URL на консоль, а именно

server_path+"formproxy.php?"+$(form).serialize()+"&action="+form.action+"&callback=?"

Я могу зайти на выведенный URL и увидеть, что он работает и выдает ?({"result":"success"}), что мне кажется правильным.

Глядя на консоль в Chrome, она даже не показывает XHR, но я по крайней мере уверен, что код $ .getJSON () достигается благодаря точкам останова.

Наконец, я должен заметить, что меня даже не волнует возвращение данных из вызова AJAX. Мне просто нужно отправить данные формы через домен и позволить сценарию formproxy.php обработать его.

Буду очень признателен за любые мысли о том, почему это может не сработать, или за технику, которая поможет мне увидеть, что происходит внутри.

1 Ответ

2 голосов
/ 05 августа 2011

Вы пытались просмотреть Сетевую панель в инструментах разработчика Chrome?Он покажет вам все http запросы / ответы, которые делаются на вашей странице.Таким образом, вы можете точно определить, выполняет ли вызов getJSON запрос на сервер, и каков ответ сервера (если есть).

Вы также можете использовать панель Net в Firebug для этого.

...