prototip ile ajax isteği boş bir html sayfası (aralıklı) ile 200 başarı döndürür

2 Cevap php

i bir düğmeye basıldığında aşağıdaki ajax isteği gerçekleştirerek bir sayfa var.

Normalde ben bir json nesnesi geri almak ve iyi çalışıyor, ben aralıklı istekleri (bu sayfadan genellikle sadece ilk istek) fark var, ben boş bir sayfa ile 200 başarı kodu geri almak.

i html sayfayı yeniden yükleyin, sonra düz sonra çalışıyor tekrar düğmesine basın.

aralıklı tarafından demek i irade sorunu çoğaltmak değil, ancak ben bu konuda bir şeyler yapmak gerektiğini düzenli olarak yeterli oluyor

Büyük olasılıkla bir ajax ya da bir prototip sorun veya bir sunucu tarafı sorunu özellikle (i debian / apahce / php kullanıyorum) eğer ben sadece merak ediyorum

ne ben sorunu izini deneyebilirsiniz?

new Ajax.Request( url, 
{
	method:'post',
	parameters: $('TeamForm').serialize(true),
	onSuccess: function(transport) {
		// do stuff						

	},
	onFailure: function(transport) { 
		// display error

	}
 });

2 Cevap

Bu soruna bir çözüm ancak bir çözüm değil - bu arada yanıtın responseJSON özellik null ise, tespit olabilir, ve eğer öyleyse, hata oturum ve istek gönderin. Bu şekilde en azından ikinci isteği geçmesi gerekir. Bu işlemek için kolay yolu onFailure işleyicisi yakalamak ve yeniden göndermek için izin sizin onSuccess işleyicisi özel bir nesneyi atmak olabilir.

Verdiğiniz örnekte dayanarak, ben javascript ile görebilirsiniz endişe tek kaynağı $ ('TeamForm') olduğunu serialize (true).; deyim. Eğer TeamForm iyi veri kurdu eminiz, ve PHP arka uç uygun bu işleme olduğunu?

Herhangi bir sondaki boşluk karakterleri için PHP kodu kontrol edin. Sen bir kapanış etiketi ile PHP dosyalarını sona olmamalıdır.

örneğin

<?php
class Foo {
}
?> //There is a space after this closing tag!

Tarayıcınıza gönderilen gizli uzayda neden olacaktır. Bu saf bir PHP dosyası kapalı kapanış etiketi bırakmak geçerli sözdizimi (ve önerilen) 'dir:

<?php
class Foo {
}

Ayrıca, tarayıcıya çıktı göndermek herhangi bir eko ya da baskı yıllardan için kodunuzu kontrol edin. Bir hata mesajı gibi tarayıcıya gönderilen veri neden olabilir gibi Ayrıca, display_errors ayarını kontrol edin.

Ben sunucu tarafı olma sorunu üzerinde 99:1 oran koymak istiyorum.