IE8 ajax isteği için oturum çerezi geçmez

5 Cevap php

Ben Ajax arama (jQuery yazılan yöntemi) kullanılarak tablo alanını güncelleştirmeye çalıştığınızda ben IE8 beta 2 hariç tüm tarayıcılarda çalışır, basit php uygulama var, sorun oluşur. Ben IE8 oturum tanımlama yüzden php komut göndermek olmadığını anlamaya IE8 debugger kullanarak yerine istenen eylemi yürütme giriş sayfasını yönlendirir.

Ben bu işi yapmak için ne yapabilirim.

Edit: I haven't mention that i was using Code Igniter so i have solved this problem by replacing Code Igniter default session implementation with native one. Code igniter default session implementation uses cookie to store all data.

5 Cevap

Dün benzer bir sorunu vardı ve çözüm bulundu. Bu da başkası yardımcı olacağını umuyoruz.

Problem: benim sunucudan php dosyası, www.myserver.com/welcome.php yükler Pazar sabahı şovmen nod içindeki bir web sitesi www.somewebsite.com ve IFRAME var varsayalım. Web sitesi benim karşılama sayfası yanı sıra başarılı bir yükleme oldu ve "Merhaba Bob" gibi bir şey gösterdi, bu yüzden başarılı bir kullanıcı buldum ve onu içeri giriş

Daha sonra benim JavaScript AJAX çıkıyordu başka bir PHP dosyası çağırır ve tepki tür "yetkili değil" durumunda olduğunu, bu yüzden OTURUM verileri tamamen eksik oldu. Sayfa yenileme sonra, her şey düzgün çalışıyordu. Ve bu sadece IE8 altında oluyordu!

Ben bu sorunu sunucuya oturum çerezleri gönderme olduğunu düşündüm, ama ben yüklü zaman Fiddler, ben IE8 doğru yanı PHPSESSID olarak çerezler gönderme olduğunu bulundu, ancak sunucu tür yapamaz doğru OTURUM nesneyi algılamak oldu. Başka bir garip şey 2 saat sunucusu şu başlığı gönderdi oldu:

P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"

ama ilk kez hayır. PHP script manuel o başlık ekledikten sonra, her şey bir cazibe gibi çalıştı!

Ben "P3P abrakadabra" googled Sonra, ben şu web sitesine bulundu:

http://adamyoung.net/IE-Blocking-iFrame-Cookies

Conclusion: Eğer bir çerez her sayfada başlık yolluyoruz emin olun.

Bu only IE8 + PHP kombinasyon ile ilişkili değildir, aynı sorun IE8 + ASP.NET, IE8 + JSP, vb durumunda olur

Ben IE8 kendimi yok, ama çerez Internet Explorer'ın garip güvenlik politikaları tarafından engelleniyor olabilir. Olası geçici çözüm (ayrıca bir IFRAME içinde çalışan kurabiye almak için yöntem) P3P istihdam olabilir.

Doğru P3P politika üreten iş biraz olabilir, ama http://www.p3ptoolbox.org/ de ihtiyacınız olan bilgileri bulmak mümkün olmalıdır

Ben IE8 RC1 aynı sorun vardı:

1)a user goes to the login page and a blank session cookie is set
2)The user logs in and a validated session cookie is set and javascript opens a new window and closes the current window.
3)The new window is opened and contains a blank session cookie.
4)The user is redirected to the login page

Onun valide ise sadece oturum tanımlama göndermek - boş çerez set değildi ki ben 1. adımı değiştirdim. Bu benim için sorun giderilmiştir.

Ben sorun IE8 yetki aracı olarak SSL Sertifikaları (PK12) dosyalarını kullanmak için alıyorum yaşıyorum. Ben bir dizin korumak ve erişim izni vermeden önce tarayıcıda bulunması için uygun web sertifika zorlamak istiyorum. Değil sadece IE8 - Bu IE7 ve Mozilla tüm sürümleri ile çalışıyor. Eşimin dikte sistemi işe yaramaz hale gelmiştir. Ben fark ettim Bir başka şey PHPSESSID çerez zaman,. Net değil mydomain.net gibi etki listesi olmasıdır.

Geçici bir çözüm olarak, URI bir parametre olarak Sessionıd gömebilirsiniz.

Php sorularınızı passing session id bakın.