ben şu var.JavaScript tepkisi ve ajax isteği
Sonra arama sonuç döndürmeden önce kod yürütülür gibi görünüyor ama neden? Söz, düzgün bir şekilde ayarlanmadı mı?
Şimdiden çok teşekkürler.
ben şu var.JavaScript tepkisi ve ajax isteği
Sonra arama sonuç döndürmeden önce kod yürütülür gibi görünüyor ama neden? Söz, düzgün bir şekilde ayarlanmadı mı?
Şimdiden çok teşekkürler.
Burada Promise.resolve yapmak gereksiz, çünkü $ .ajax çağrı zaten bir söz verir. bu deneyin:
function wikiAjax (searchURL) {
return $.ajax({
url: searchURL,
jsonp: "callback",
dataType: 'jsonp',
xhrFields: {
withCredentials: true
}
});
}
$(".search-form").submit(function() {
var searchText = $('#search').val();
var searchURL = "https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrsearch=" + searchText + "&gsrlimit=15&prop=extracts&exsentences=3&exintro=&explaintext&exlimit=max&callback=JSON_CALLBACK";
console.log(searchURL);
var wikiResponse = wikiAjax(searchURL);
wikiResponse.done(function(data) {
alert(data);
}).fail(function(err) {
alert("The call has been rejected");
});
});
Bu plunker bir çalışma (ve göstermek için modifiye): Ben Promise.resolve (düşünmek https://plnkr.co/edit/qyc4Tu1waQO6EspomMYL?p=preview
Teşekkürler @pkeuter ama çözümünüzle birlikte, kırılma noktasında bile çalışmıyor. – S4rg0n
@ S4rg0n plnkr'a baktınız mı? Kesinlikle çalışıyor, bu yüzden başka bir şey yapmalısınız. Yukarıda belirtildiği gibi, jQuery'nin yeni bir sürümünü mi kullanıyorsunuz? –
) açıkça sen olması gerektiği bunu desteklediğinden emin olmak sürece bir ES6 özelliğidir çalışmıyor
Ama şu biçimde söz dönmek) $ .ajax (sizin için şanslı:
var promise = $.ajax({
url: "/myServerScript"
});
promise.done(mySuccessFunction);
promise.fail(myErrorFunction);
(daha sonra değil() ve kodunuzda yazılmış gibi catch())
Burada neler olabileceğini düşünüyorum, tarayıcı ajax çağrısının yanı sıra formda varsayılan gönderim etkinliğini yürütüyor. Sonuç, pencerenin boşaltılması ve yeniden yüklenmesidir. koyarak
Dene: işleyicisindeki
event.preventDefault();
.
$(".search-form").submit(function(event) {
event.preventDefault();
var searchText = $('#search').val();
var searchURL = "https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrsearch=" + searchText + "&gsrlimit=15&prop=extracts&exsentences=3&exintro=&explaintext&exlimit=max&callback=JSON_CALLBACK";
console.log(searchURL);
var wikiResponse = wikiAjax(searchURL);
wikiResponse.then(function(data) {
alert(data);
},
function() {
alert("The call has been rejected");
}
);
});
Arama geri dönülmeden önce kodun yürütülmesini sağlayan nedir? –
@JesseLee Çünkü bir kesme noktası koyarsam, uyarıdaki nesneyi görebilirim. – S4rg0n