2012-04-21 95 views
8

我使用PJAX,它對於簡單示例非常有用,但我需要能夠使用PJAX請求來完成一些高級事務。將數據附加到PJAX請求

  1. 我想附加一些數據到每個PJAX請求。我想追加的數據實際上是一個對象數組。看下面的例子。
  2. 我可能需要使用POST而不是GET來進行ajax調用。
  3. 我可能需要將內容類型更改爲「application/json」。

我有以下...

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". 

}); 

我已經嘗試了各種方法...

  • 使用jQuery.ajaxSetup設置一些默認值(我可以設置數據,但是不會附加_pjax數據元素;我試圖將類型設置爲POST,但不會粘住。)
  • 試圖修改beforeSend處理程序中的jqXHR對象
  • 試圖修改beforeSend處理程序中的設置對象

所有嘗試都給我提出了各種問題。

我不知道爲什麼這麼難。任何幫助將不勝感激!

回答

7

由於documentation指出:

你也可以調用$ .pjax直接。它的行爲非常像$ .ajax,即使返回相同的東西並接受相同的選項。

我會嘗試以下方法:

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

感謝。這是我最終採取的方法。 – Kevin 2012-05-05 15:56:36

相關問題