Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery pjax-呈现页面出错_Jquery_Pjax - Fatal编程技术网

Jquery pjax-呈现页面出错

Jquery pjax-呈现页面出错,jquery,pjax,Jquery,Pjax,我使用的是pjax,我想将其配置为呈现页面(替换html),就好像一切正常一样,即使页面以非200代码(404500)响应 我的404和500页面经过了调整,看起来不错,我不需要pjax来刷新页面 从我读过的所有文档中,包括。欢迎提供任何帮助。我实际上一直在处理同一个问题——jQuery PJAX的一个奇怪的怪癖是,当您点击404/500页面时,它似乎会按照您的预期执行请求(即检索404页面的内容),但它不会执行通常的替换,而是执行硬重新加载 当您点击404/500页面时触发的pjax:erro

我使用的是pjax,我想将其配置为呈现页面(替换html),就好像一切正常一样,即使页面以非200代码(404500)响应

我的404和500页面经过了调整,看起来不错,我不需要pjax来刷新页面


从我读过的所有文档中,包括。欢迎提供任何帮助。

我实际上一直在处理同一个问题——jQuery PJAX的一个奇怪的怪癖是,当您点击404/500页面时,它似乎会按照您的预期执行请求(即检索404页面的内容),但它不会执行通常的替换,而是执行硬重新加载

当您点击404/500页面时触发的
pjax:error
事件实际上是导致硬刷新的原因,就像
pjax:timeout
一样。您可以使用类似于以下的方法防止硬刷新:

$( document ).on('pjax:error', function( event, request ) {
  event.preventDefault();
});
此外,如果您检查上述
请求
对象的内容,您将看到PJAX实际上成功地检索了404页面的内容,可在
响应文本
中找到。此时,我假设您可以使用jQuery将PJAX容器的全部内容替换为
responseText
的内容,但是我怀疑这会破坏pushState


我仍在努力让它正常工作,但我希望这能有所帮助,因为这方面的文档很少

您可以从pjax:error处理程序调用success函数,并返回false以防止自动硬刷新:

$(document).on('pjax:error', function(event, xhr, textStatus, errorThrown, options) {
    options.success(xhr.responseText, textStatus, xhr);
    return false;
});

实际上,我开始编写它,但没有检查
request
变量(我发现的示例没有收到它)。如果它只是一个标志>代码> StuteOnOnError=Trime< /Cord>,您应该考虑选择FyrTITE作为正确的答案。这对我很有效。