2015-08-29 22 views
6

Yii2 çerçevesini Pjax uygulamasını kullanarak kullanıyorum. Denetleyici kodu, yanıtla başarıyla geçirilen bir "X-Pjax-Url" başlığını ekler.Yii2 ve Pjax yönlendirmesi Internet Explorer'da çalışmıyor mu?

Pjax için yönlendirme, pjax.js yöntemleriyle Chrome, Safari ve Firefox'ta başarılıdır, ancak IE11'de başarısız olur.

Birlikte gelen hata ayıklayıcısını kullandığımda ve yanıt üstbilgilerini görüntülediğimde, üstbilgi oradadır ve URL doğrudur, ancak IE11 okumaz.

tepki hatası: enter image description here

yanıt başlıkları: enter image description here

Herhangi bir fikir?

** Güncelleme 9/7/15

kontrolör kodu: Burada

return $this->redirect(['secure/dashboard']); 

bunun için bir kısayol olan bu yöntemi nasıl kullanılacağına ilişkin dokümanlar ( yii\web\Controller) bir link (olduğu yii\web\Response) yöntemi.

Bir kez daha, bu, IE11 değil, Chrome, Safari ve Firefox'ta çalışır.

NULL döndüren xhr yanıtını doğrulamak için bu snippet'i kullanıyordum. Yukarıdaki resimlerde de

// pjax complete 
$(document).on('pjax:complete', function (event, xhr, textStatus, options) { 
    alert(JSON.stringify(xhr)); 
    var url = xhr.getResponseHeader('X-Pjax-Url'); 
    if (url) { 
     window.location = url; 
    } 
}); 

, IE düzgün okuyor sanki sadece görünüyor, başlık aslında gönderilen görebilirsiniz.

Pjax.js dosyası aslında yönlendirmeyi işliyor, yalnızca hata ayıklama amacıyla snippet kullanıyordum.

+0

sizin kod örneğini – ankitr

+0

vermek durum kodu 200 yerine varsayılan olarak ayarlamak için olurdu senin kodu. – TheLuminor

+0

Uzun süredir ama sadece IE11'de (ve 10) bozulan bir XHR sorununu takip ediyoruz. Bizim durumumuzda, okuma tire/tire ile keser. Son birkaç hafta içinde başladı. https: //social.msdn.microsoft.com/Forums/en-US/061721c1-68a5-4f38-83ec-d7e4b596cc1d/problem-parsing-xml-with-a-hyphen-in-ie11?forum=iewebdevelopment –

cevap

1

Bu hatayı doğrulayabilirim. Ancak bunun bir IE hatası mı yoksa bir yii2 hatası mı olduğuna dair bir ipucum yok.

Yönlendirmenin "geri döndürme" kullanmıyor ve pjax isteklerini yapan yönlendirmeye ek olarak normal görünümü oluşturuyorsa, yönlendirmenin çalıştığını bildiğim tek şey. , ör. pjax etkin bir ızgara gösteren dizin işlemimde test ettim. Sonra kullanıcı görünümüne bir pjax isteği (burada bir sütun için bir sıralama) yönlendiriyorum. İleri çalıştığı için normal bir görünüm ayrıca render ise

public function actionIndex() 
{ 
    if (Yii::$app->getRequest()->getIsPjax()) { 
     //return $this->redirect(['user/view','id'=>1]); // doesn't forword in IE. 
     $this->redirect(['user/view','id'=>1]); // forwards also in IE. 
    } 

    $searchModel = new UserSearch(); 
    $dataProvider = $searchModel->search(Yii::$app->request->queryParams); 

    return $this->render('index', [ 
     'searchModel' => $searchModel, 
     'dataProvider' => $dataProvider, 
    ]); 
} 

(sadece bir örnek olarak) bir şey (büyük olasılıkla bazı başlıklar) eksik sanırım. Yii2 github'da bir sorun açıp destek isteyeceğim.

Bu btw. pjax birlikte yönlendirme https://github.com/yiisoft/yii2/issues/4395

düzenleme değiştirildi sorunu: hızlı çözüm Verdiğiniz eğer yararlı olacaktır 302

if (Yii::$app->getRequest()->getIsPjax()) { 
    return $this->redirect(['user/view','id'=>1], 200); // forwards also in IE. 
} 
+0

Yönlendirme yapıyorsanız bunu öğrendim durum kodu 200 ile 'return $ this-> yönlendirme (['user/view', 'id' => 1], 200);' IE de çalışır. Standart 302'yi kullanırsanız, IE'de çalışmaz. Pjax isteklerinde durum kodu, yeniden yönlendirmelerde 302 yerine 200 olacak şekilde ayarlanabilen bir şey daha sonra IE'de de çalışacaktır. Ama yii2 github'da bir konu açmalısın, bu yüzden bu dev'ler tarafından kontrol edilir. – BHoft

+0

Farklı bir durum kodu denemeyi hiç düşünmemiştim. Kod değişikliğinin diğer yan etkileri var mı? –

+0

Durum kodu 200'ün çalıştığını onaylıyorum. Orada bir sorun açacağım. –

İlgili konular