Pjax在IE9上没有正确降级

时间:2015-05-04 19:06:53

标签: javascript internet-explorer-9 pjax

我正在使用this method之后的参数传递以下网址,以编程方式调用pjax。

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

这在现代浏览器上完全正常,但无法在Internet Explorer 9及更低版本中包含任何参数。该页面只导航到/activity

为什么?

1 个答案:

答案 0 :(得分:0)

pjax依赖其工作的Internet Explorer 9 does not support pushState。当pushState API不可用时,$.pjax会调用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选项字段中传递参数。
  3. 回退会自动循环遍历您的参数并为每个参数创建输入字段。