SORU
13 EKİM 2008, PAZARTESİ


Nasıl jQuery Ajax çağrısından sonra bir yönlendirme isteği yönetmek için

$.post() bir sunucu uygulaması Ajax ve kullanıcının geçerli sayfa div bir eleman yerine sonuç HTML parçasını kullanarak aramak için kullanıyorum. Oturum zaman aşımına uğradı, ancak sunucu giriş sayfasına kullanıcı göndermek için yönlendirme bir Direktif gönderir. Bu durumda, DV giriş sayfasının içeriği ile div öğesi, kullanıcının gözleri nadir görülen bir sahne gerçekten de bir şeye zorlamak yerine.

Nasıl jQuery 1.2.6 ile bir Ajax çağrısından bir yönlendirme yönergesi yönetebilir miyim?

CEVAP
7 EKİM 2009, ÇARŞAMBA


Bu soruyu okudum ve tarayıcı şeffaf yönlendirmeler önlemek için 278 yanıt durum kodu ayarı ile ilgili ifade edilen yaklaşım uygulanmaktadır. Bu çalıştığı halde, bir hack biraz olduğu gibi biraz memnun kalmadım.

Daha fazla araştırma sonra, bu yaklaşım ektim ve JSON kullanılır. Bu durumda, ajax istekleri için tüm yanıtları durum kodu 200 ve yanıt gövdesi sunucuda oluşturulmuş bir JSON nesnesi içerir. İstemci üzerinde javascript sonra neler yapması gerektiğini karar vermek için JSON nesne kullanabilirsiniz.

Sizinkine benzer bir sorunum vardı. 2 Olası yanıtı olan bir ajax isteği yapıyorum: yeni bir sayfada varolan bir HTML Formu yerine yeni bir sayfa ve bir tarayıcı yönlendirir. Bunu yapmak için jquery kodu gibi görünüyor:

$.ajax({
    type: "POST",
    url: reqUrl,
    data: reqBody,
    dataType: "json",
    success: function(data, textStatus) {
        if (data.redirect) {
            // data.redirect contains the string URL to redirect to
            window.location.href = data.redirect;
        }
        else {
            // data.form contains the HTML for the replacement form
            $("#myform").replaceWith(data.form);
        }
    }
});

JSON "data" 2 ay sunucu üzerine inşa edilmiştir: veri nesnesi Yönlendirme ve veri.form. Bu yaklaşım çok daha iyi buldum.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • infiniTuts

    infiniTuts

    18 Ocak 2012
  • mist64

    mist64

    30 Mayıs 2006
  • Nick Pitera

    Nick Pitera

    8 NİSAN 2006