2016-03-23 15 views
0

Bu, bir düğmeyle bir jquery yayını tarafından tetiklenen bir çıkış sayfasıdır. url bu sayfaya gidildiğindeAyrı bir sayfa arayarak yönlendirmek mantıklı mı?

çıkış komut o sayfa yönlendirilir, oturum yok edilir, işleri, basitçe

<?php 

session_start(); 

session_destroy(); 

header("Location: new location"); 

?> 

olduğunu.

<script> 
$.post("logout.php"); 
</script> 

şey olmuyor bir jquery postayla çağrılırken Ama, jquery sonrası isteği çalışmadığını olabilir.

Sadece bu şekilde yapmanın bir anlamı olup olmadığını merak ediyorum.

+1

Belki de çalışmayan bir yönlendirme. Eğer ajax ise, örneğin oturumun imha edildiğini belirten bir JSON yanıtı döndürmeli ve sonra JS'de window.redirect'i kullanmalısınız. –

+2

Denemelisiniz: '$ .post (" logout.php ", function() {window.location.reload()});' ve en azından herhangi bir hata için konsolunuzu kontrol edin ... –

+0

teşekkürler çocuklar. @Keyne, henüz bir şey için JSON kullanmıyorum, onu bir noktada uygulamak istiyorum. –

cevap

2

Her şeyden önce, yerine $.get kullanın, çok daha hızlıdır.

Bu, bir düğmeyle bir jquery postası tarafından tetiklenen bir çıkış sayfasıdır.

header("Location: new location");

logout.php kendisi yönlendirmek neden olur ve sadece dönen reslut değişecek ve arayan sayfasını kendisi yönlendirme olmaz.

<script> 
$.get('logout.php', function(){ documnt.location.href='/index.php' }); 
</script> 

bu ajax istediğinde kullanılmaktadır sonra istediğiniz sayfaya yönlendirme yapar: gibi

deneyin. Bir dosya olarak yüklendiğinde

+1

logout.php –

+0

yüklendikten sonra bir yönlendirme bekliyor Bu kodu değiştirdim lütfen bir göz atın. –

+0

Teşekkür ederiz @Ashkan –

0

header("Location: new location");

Bu tabii ki PHP kodu yönlendirir. Ancak,

<script> 
$.post("logout.php"); 
</script> 

Bu, bir AJAX isteğidir. AJAX İsteği sadece bir sayfa talep eden ve sayfanın HTML içeriğini yanıtlayan istektir. Bu nedenle, header() işlevi, <script>'un bulunduğu sayfayı yeniden yönlendirmez.

yerine $.post

Eğer bu yardımcı olur $.ajax

$.ajax 
{ 
url: 'logout.php', 
type: 'POST', 
contentType: false, 
processData: false, 
success: function(){ 
    window.location='new location'; 
} 
} 

Umut kullanmak isteyebilirsiniz. Teşekkür ederim.

+0

İşe yaramamış olmasının sebebi buysa . Yani, AJAX kullanarak sayfa yenilenmez, ancak sonunda yeniden yönlendirirken sayfayı yeniden canlandıracaksınız, o zaman neden ajax kullanıyorsunuz? Bilmiyorum. –

+0

Sadece doğrudan PHP dosyasına bağlamak veya AJAX aracılığıyla çağrı yapmak için çağrıdır. –

İlgili konular