8

私は PJAX を使用しており、単純な例ではうまく機能していますが、PJAX 要求でいくつかの高度なことを実行できるようにする必要があります。

  1. 各 PJAX リクエストにいくつかのデータを追加したいと思います。追加したいデータは、実際にはオブジェクトの配列です。以下の例を参照してください。
  2. ajax 呼び出しには GET ではなく POST を使用する必要があるかもしれません。
  3. content-type を「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 ハンドラーで設定オブジェクトを変更しようとしています

すべての試みは私にさまざまな問題をもたらします。

なぜこれが難しいのかわかりません。どんな助けでも大歓迎です!

4

1 に答える 1

7

ドキュメントが指摘しているので:

$.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'
  })
});
于 2012-04-30T23:38:27.550 に答える