【问题标题】:HTML shown in browser when using back button使用后退按钮时在浏览器中显示的 HTML
【发布时间】:2020-01-15 00:15:28
【问题描述】:

这有点奇怪。我将 Laravel 5.8 应用程序升级到 6.x 版本。在使用 PHP7.3 的 Apache Web 服务器上,当我使用浏览器后退按钮时,纯 HTML 代码会显示在浏览器中。如果我重新加载页面,一切正常。

在完全相同的服务器上,我也在运行 5.8 版本,并且后退按钮工作正常。因此我最好的猜测是这是 Laravel 6.x 的问题

但是我找不到任何关于此的文章,所以希望这里有人可以帮助我。

在 Chrome 中没有错误消息,只有纯 HTML 代码在视图中。但在 Firefox 中,我收到此错误:SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

【问题讨论】:

  • 您需要改进答案,而不仅仅是版本,向我们展示一些代码或问题的简化版本
  • 什么代码?从控制器,从视图和什么。因为如果我不能把手指放在它上面,我不知道从哪里开始。顺便说一句,它存在于每个页面中,因此存在于每个视图和每个方法中
  • 你能检查发送到浏览器的响应的标题吗?内容类型是否正确?
  • 就是这样,当开发者控制台打开时,一切正常,但是当它关​​闭时,问题就出现了。打开开发控制台,内容类型为text/html; charset=UTF-8
  • @AhmedShefeer,在 Firefox 中我得到了更多信息。如果我点击后退按钮,内容类型为application/json,直到我重新加载

标签: php laravel apache


【解决方案1】:

好吧,我想通了...当页面上的 jQuery Ajax 调用对它自己执行 POST 或 GET 并且数据类型设置为 json 时,页面的标题将更改为 application/json。奇怪的是,这在 Laravel 5.8 中不是问题,但在 6.x 版本中突然出现

$.ajax({
    url: '/page',
    headers: {'X-CSRF-TOKEN': $('meta[name="csrf_token"]').attr('content')},
    dataType: 'json',
    formData: { media_folder_id: $("#media-folder-id").val() },
    context: $("#fileupload")[0]
})

【讨论】:

    【解决方案2】:

    检查标签头部中的任何链接标签并删除任何

    <link type="text/css" rel="stylesheet" href="#" id="example"/>

    href="#"

    【讨论】:

    • 换成一样的?我没有得到这个....
    猜你喜欢
    • 2013-06-18
    • 2013-03-02
    • 2013-12-04
    • 2023-03-07
    • 2011-08-06
    • 2020-02-16
    • 1970-01-01
    • 2014-06-11
    • 2011-02-17
    相关资源
    最近更新 更多