Pjax 在 IE9 上无法正常降级

Pjax not degrading properly on IE9

我正在传递以下 url 和 this method 之后的参数以编程方式调用 pjax。

var url = '/activity?fromDate='+$('#from-date').val()+'&toDate='+$('#to-date').val();
$.pjax({url: url, container: '#main-body'});

这在现代浏览器上工作得很好,但在 Internet Explorer 9 及更低版本上无法包含任何参数。该页面只是导航到 /activity.

这是为什么?

Internet Explorer 9 does not support pushState which pjax relies on to work. When the pushState API is unavailable, $.pjax calls the fallbackPjax() 函数。

回退创建一个隐藏的 <form> 并将您指定的 url 放入表单的操作字段中。 忽略表单操作字段中的任何参数。

有两件事需要完成。

var url = '/activity';
var data = 'fromDate='+$('#from-date').val()+'&toDate='+$('#to-date').val();
$.pjax({url: url, data: data, container: '#main-body', method: 'GET' });
  1. 您需要将 method 指定为 GET(回退将默认为 POST)
  2. 您需要在选项的 data 字段中传递您的参数。

后备自动循环遍历您的参数并为每个参数创建输入字段。