【问题标题】:Append Data to PJAX Request将数据附加到 PJAX 请求
【发布时间】:2012-05-02 21:17:43
【问题描述】:

我正在使用 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 处理程序中的设置对象

所有尝试都会给我带来各种问题。

我不知道为什么这么难。任何帮助将不胜感激!

【问题讨论】:

    标签: ajax pjax


    【解决方案1】:

    由于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'
      })
    });
    

    【讨论】:

    • 谢谢。这就是我最终采用的方法。
    猜你喜欢
    • 2021-06-04
    • 2021-08-03
    • 2016-03-30
    • 2016-08-15
    • 1970-01-01
    • 1970-01-01
    • 2019-09-08
    • 2014-12-28
    • 1970-01-01
    相关资源
    最近更新 更多