Jak używać danych odpowiedzi z funkcji Ajax sukcesu z wywołania Ajax


Mam pytanie, kiedy wykonuję wywołanie ajax i w funkcji sukcesu otrzymuję dane json, nie mogę ich użyć z funkcji sukcesu
$.ajax({
type: 'GET',
url: url,
dataType: 'json',
success: function (response) {
getData[name] = response; }
});
alert(getData[name]);

Moje pytanie brzmi jak pracować z getData z wywołania Ajax
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Problem polega na tym, że domyślne żądanie Ajax jest asynchroniczne

oznacza to, że AJAX uruchomi żądanie
a następnie wykonuje:
alert (getData [nazwa]);
następnie kończy żądanie w tle i wywołuje funkcję sukcesu.
Tak więc, ostrzeżenie zostanie wykonane przed powodzeniem.
I robić to, co chcesz, musisz powiedzieć AJAX, aby nie wykonywał niczego, zanim się skończy, w innym zestawie komór
asynchronizacja: False

Po drugie, musisz zadeklarować zmienną poza zakresem AJAX, aby uzyskać do niej dostęp poza zakresem AJAX
Ostateczny kod będzie wyglądał następująco:
var getData;
$.ajax({
type: 'GET',
url: url,
dataType: 'json',
async: false,
success: function (response) {
getData[name] = response; }
});
alert(getData[name]);
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Musisz zadeklarować tę zmienną getData [nazwa] nad wywołaniem ajax, aby mieć po niej wartość.
<pre class="lang-js prettyprint-override">
var getData;
$.ajax({
type: 'GET',
url: url,
dataType: 'json',
success: function (response) {
getData[name] = response; }
});
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

należy unikać async false. Graj z async i używaj zdarzeń .done do obsługi odpowiedzi. Gwarantuje to, że odpowiedź jest przetwarzana niezależnie od tego, gdzie znajduje się formant podczas wywołania zwrotnego. Nie obchodzi cię to.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Użyj właściwości „async: flase” w kodzie i spróbuj raz
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

AJAX oznacza


asynchroniczny

JavaScript i XML.

Gdy dzwonisz do
alert
, wywołanie AJAX nie zostało zakończone, więc
getData [nazwa]
nie jest ustawiony.
Musisz zadzwonić do
alert
(lub coś z tym zrobić) w wywołaniu zwrotnym sukcesu.
$.ajax({
type: 'GET',
url: url,
dataType: 'json',
success: function (response) {
getData[name] = response;
alert(getData[name]);
}
});

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się