İsteğin ajax olup olmadığını kontrol etmem gerekiyor. $request->isXmlHttpRequest()
düzgün çalışır, ancak yürütme sırasında bir yönlendirme varsa, bu yöntem yanlış döndürecektir. Bu durumda talebin ajax olup olmadığını başka nasıl kontrol edebilirim? p.s. ajax, jQuery
cevap
tarafından başlatılmışsa Projenizde veya başka bir harici uri'de farklı bir uygulamaya yönlendiriyorsanız, ilk istekte isXmlHttpRequest doğruysa, ileriye doğru kullanın.
iyi
X-Requested-with
başlığının ve başlık bir tarayıcı uygulamaları (veya tüm orijinal başlıkları) içerisinde değere karşı bu yöntem kontrolleri (FF bir isim) yönlendirilen istek/yazılır bırakılır.
Bir geçici çözüm olarak, isteğin kendisinde bir değişken kullanabilirsiniz. Mevcut sf_format
altyapısını kullanabilirsiniz, ancak bunun dahili olarak nasıl çalıştığını bilmediğim için işe yarayıp yaramadığından emin değilim. Eğer kolay bir çözüm gerekiyorsa size "ajax" adlı bir gizli alan oluşturabilir gönderilirken eğer
, ben,
http://mywebsite.com/loadsomething.php?ajax=true ve
$isAjax = $request->getParameter('ajax');
gibi bir URL kullanın önermek Ya olacaktır. Tabii ki bunlar probleminizi sonsuza kadar çözmeyecek, ancak en kısa sürede buna ihtiyacınız varsa hızlı bir çözüm olarak çalışacaktır.
Yalnızca bir yönlendirmeyi desteklemek istiyorsanız, bir flash değişkeni de oluşturabilirsiniz.
Aksi takdirde symfony kaynak koduna bakabilirsiniz: hat 518 üzerinde
http://trac.symfony-project.org/browser/branches/1.4/lib/request/sfWebRequest.class.php
istek nesne HTTP üstbilgilerinden ajax olmak isteği tanımlayan görebilirsiniz. Bu yüzden, yönlendirme sonrası aynı HTTP başlıklarının neden düzgün ayarlanmadığını öğrenmelisiniz.
Bazı js kütüphaneleri juste betiğinizde bu eklenti, başlıklarda XmlHttpRequest değerini göndermez:
xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");
Kesinlikle, Firefox sorumlu olduğu. Opera'da da aynı şekilde test edildi, iyi çalışıyor. – Dziamid
@Dziamid: Evet, bir hata var, ancak FF4 sürümünü kaçırdı, bu yüzden sabitlenmeden önce en az 4.1 olacak. Ek olarak, bunun dışında başka tarayıcılar da olabilir. Bu yüzden geçici çözümünüzle muhafazakar olarak oynayacağım. Muhtemelen eğer mümkünse, yönlendirme ile denklemi tamamen kaldırabilirim. – prodigitalson
Kafamı buna karşı yasaklıyorum ama boşuna. Açıktır ki, bir istek nesnesine özel bir istek parametresi ayarlamak yardımcı olmaz - bir yönlendirme üzerinde nettirler. Sf_format kullanmak karmaşık bir yoldur (çünkü symfony sonra indexSuccess.sf_format.php gibi farklı şablonlar arar). – Dziamid