使用 HTML5 pushstate 请求 ajax 时未定义的索引通知

Undefined index notice while requesting ajax with HTML5 pushstate

也许这个脚本已经过时了,但是我想知道如何解决这个问题。当页面请求 ajax 调用时,我收到 Notice: Undefined index: notice/error。一切正常,只是这个 notice/error 困扰着我。也许我问错了,但如何解决这个问题?

PHP

<?php
  if($_GET['type']!='ajax'){
    include 'header.php';
    echo "<div id='result-content'>";
  }
?>

content goes here

<?php
  if($_GET['type']!='ajax'){
    echo "</div>";
    include 'footer.php';
}
?>

JS

$.thisproblem = $.thisproblem || {};
$.thisproblem.loadContent = function () {
    $('.ajax-loader').show();
    $.ajax({
        url: pageUrl + '?type=ajax',
        success: function (data) {
            $('#result-content').html(data);
            $('.ajax-loader').hide();
        }
    });
    if (pageUrl != window.location) {
        window.history.pushState({path: pageUrl}, '', pageUrl);
    }
}

$("a").on('click', function (e) {
    pageUrl = $(this).attr('href');
    $.thisproblem.loadContent();
    e.preventDefault();
});

抱歉英语不好,感谢您的回答。

由于 ?type 在您的 $.ajax() url 中只有 set/used,您需要在尝试之前使用 !isset() 检查它是否已设置检查它的值

<?php
  if( !isset($_GET['type']) || $_GET['type']!='ajax'){
    include 'header.php';
    echo "<div id='result-content'>";
  }
?>

content goes here

<?php
  if( !isset($_GET['type']) || $_GET['type']!='ajax'){
    echo "</div>";
    include 'footer.php';
}
?>

注意当未设置索引而您正在尝试使用它时,会出现未定义的索引。
例如: $_GET['type'] 将不会在您的情况下设置。所以首先你需要检查它是否已设置。所以你可以做

If(isset ($_GET['type']) || $_GET['type']!='yourvalue'){