2012-04-21 23 views
8

PJAX'ı kullanıyorum ve basit örnekler için harika çalışıyor ancak PJAX istekleriyle birkaç gelişmiş şey yapabilmem gerekiyor.PJAX İsteğine Veri Ekleme

  1. Her PJAX isteğine bazı veriler eklemek istiyorum. Eklemek istediğim veriler aslında bir dizi nesnedir. Aşağıdaki örneğe bakın.
  2. ajax çağrısı için GET yerine POST kullanmanız gerekebilir.
  3. İçerik türünü "application/json" olarak değiştirmem gerekebilir. Ben yaklaşımların çeşitli çalıştılar

    var people = [{ first: "John", last: "Doe" }, { first: "Jane", last: "Smith" }]; 
    
    $("a.sheet-link").pjax("#content"); 
    
    $('#content').on('pjax:beforeSend', function (e, jqXHR, settings) { 
    
        // Modify ajax request here? 
        // Would like to append the people array to data 
        // Would like to POST rather than GET 
        // May need to change content-type to "application/json". 
    
    }); 
    

    ben şu var

... ...

  • bazı varsayılan değerleri ayarlamak için jQuery.ajaxSetup kullanılarak (I ayarlayabilirsiniz veri, ancak sonra _pjax veri öğesi eklenmez, türü POST olarak ayarlamayı denedim, ancak bu işlem yapmazdı.)
  • beforeSend işleyicisindeki jqXHR nesnesini değiştirmeye çalışıyor
  • beforeSend işleyicisindeki ayarlar nesnesini değiştirmeye çalışıyor

Tüm girişimler bana çeşitli sorunlar veriyor.

Bunun neden bu kadar zor olduğundan emin değilim. Herhangi bir yardım büyük takdir edilecektir! documentation yana

cevap

7

dikkat çekiyor:

Ayrıca sadece doğrudan $ .pjax çağırabilir. Aynı şeyi geri döndüren ve aynı seçenekleri kabul eden $ .ajax gibi davranır.

aşağıdaki denemek:

var people = [{ first: "John", last: "Doe" }, { first: "Jane", last: "Smith" }]; 

$('a.sheetlink').click(function(e) { 
    e.preventDefault(); 
    $.pjax({ 
    type: 'POST', 
    url: $(this).href, 
    container: '#content', 
    data: people, 
    dataType: 'application/json' 
    }) 
}); 
+0

teşekkür ederiz. Yaklaştığım yaklaşım budur. – Kevin