Как в Ajax сделать ответ сервера доступным всему скрипту, а не только специальной области Ajax?

$(document).ready(function(){
$.ajax({
  url: 'ajax.php',
  type: 'POST',
  data: 't1f=0&t1t=6',
  dataType: 'json',
  success: function(resp){
alert(resp[0].id); //Тут работает.
}})});
alert(resp[0].id);//Тут уже нет.
  • Вопрос задан
  • 86 просмотров
Решения вопроса 2
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
var someGlobal;
$(document).ready(function(){
$.ajax({...
   success: function(resp){
      someGlobal = resp;
...
}})});
alert(someGlobal); //Тут все равно фига :)
Нужно учитывать что аякс запрос - асинхронный, то есть алерт сразу после кода аякс выдаст вам фигу с маслом, так как этот код исполнится в момент инициализации запроса, а не после получения ответа.

PS:
специальной области Ajax
Это вы так область видимости переменных понимаете? Забавно ))
Ответ написан
Stalker_RED
@Stalker_RED
Как вынести переменную во внешнюю область видимости вам ThunderCat правильно показал. Но алерт все равно "покажет фигу", потому что он будет выполнен ДО того, как сработает ajax запрос. Хоть этот запрос и написан выше, но он выполняется не мгновенно. И если запрос успешно отработает, то ответ в переменную попадет, конечно, но уже ПОСЛЕ срабатывания алерта. Если вместо алерта сделать вывод этой-же информации по кнопке, или с задержкой на setTimeout, например, то данные из ответа уже будут видны.

Читайте о асинхронности в js, используйте async/await или callback-функции.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
04 апр. 2020, в 23:07
30000 руб./за проект
04 апр. 2020, в 23:05
100000 руб./за проект
04 апр. 2020, в 22:57
2000 руб./за проект