Ben sadece garip bir şey koştu. Ben farklı verileri tutan iki json diziler var. Genellikle sadece bir tanesi veri gerekir, ama her iki dizide veri almak için bir çift ajax arama yapmaya çalıştığınızda, ben de çağrılarda aynı veri ile sonuna kadar.
(PS! Ben url
kesip ve type
: dizisi 1. kullanıcılara JSON verileri tutan ve dizi 2 evlere JSON veri tutan, ve ben her iki dizide veri almak istiyorsanız söyleyin birkaç satır kaydetmek için.)
$.ajax({
async:false,
data:"type=users&id=3,5,6",
success: function(data) {
data = JSON.parse(data);
alert(data.length) //will alert 3 as expected
}
});
Sonra ikinci çağrı da orada bazı evler almak için yapmak:
$.ajax({
async:false,
data:"type=houses&id=2,4",
success: function(data) {
data = JSON.parse(data);
alert(data.length) //alerts 3 as well...
}
});
Kundakçı ile params ve yanıt baktığımızda, ben params doğru olduğunu görebilirsiniz, ancak yanıt yanlıştır.
Benim PHP ben bile sadece bu yaparken gelirse echo çalıştı:
echo $_GET['id'] . ", " . $_GET['type'];
Istek hem çağrılarda aynı görünmesi yapılan ... Ben ajax arama inbetween bir uyarı koyarsanız, ben (sistem bekler beri) beklenen sonuç almak. Ama senkron olmalarını hem koyarak çağrıları çökmesine yeterli olacağını düşündüm ..?
edit: Ben AJAX işlevi içinde denir php dosyanın bir kopyasını oluşturarak, ve her şeyin beklendiği gibi iş yapar ayrı dosyalara gitmek için çağrı ayarlama denedim. Yani javascript ile yanlış bir şey var oldukça eminim.
Ben ikinci AJAX çağrısından parametreleri kaldırırsanız more edit:, ben hala aynı sonucu alırsınız. Ben params listesi boş olduğunu görebilirsiniz Kundakçı ile talebi baktığımızda, ama cevap yine aynıdır ...
even more edit: kundakçı etrafa, ben keep-alive
değeri var connection
adında bir başlık olduğunu görebilirsiniz, ve sonra diye bir başlık {[(3) ]} {değeri ile [(4)]}. Ben bu onunla ilgisi olabilir tahmin ediyorum? Olsa, jQuery dokümanlar üzerinde bir şey bulamıyorum ...
source code: Ben sorun üreten bir küçük test case, yaptık:
PHP
echo $_GET['test'];
die();
HTML
<sript>
$(document).ready(function() {
$.ajax({
type:"get",
url:"bugtest.php",
data="test=hello",
success: function(data) {
$("output").append(data);
}
});
$.ajax({
type:"get",
url:"bugtest.php",
data="test=world!",
success: function(data) {
$("output").append(" "+data);
}
});
});
</script>
<h1>AJAX bug in Aptana's PHP server?</h1>
<output></output>
Ben var, hepsi ve aynı şeyi yapar: Onun yerine beklediğiniz hello world!
gibi alma, ben almak hello hello
...