Я бы изобразил, что alert(json);
показывает неопределенное значение, поскольку он работает до получения ответа.
Помните, что «ajax» является «асинхронным», поэтому оповещение будет запущено и исполнится до того, как ваше значение json
сможет получить значение.
Более того, даже если бы она работала, ваша переменная json
просто ссылалась бы на созданный объект XMLHttpRequest
. Если вы хотите получить доступ к самим данным, вы должны сделать это в обратном вызове.
var json;
$.ajax({
url : 'http://www.example.com/experimental/service.php',
type : 'jsonp',
success : function(data) {
alert('success');
json = data;
alert(json);
}
});
EDIT:
Существует также обратный вызов error:
, который вы можете назначить. Обратный вызов будет выполнен, если сервер вернет код ошибки. Я предполагаю, что это то, что вы намеревались повторить с вашей попыткой / уловом.