如何判断页面是通过Ajax调用还是通过它自己调用

And*_*273 9 php ajax jquery

我有一个页面通过Ajax加载其他页面(想想框架,除了没有框架).

显然这些页面都可以独立调用,所以我想检测它们是否通过Ajax调用,如果没有,则重定向到主Ajax页面.

页面是php页面,所以我也可以访问它.

指数:

    goto = "StandalonePrograms.php";
    var clear = "<br style='clear:both;'>"
    if(goto != ''){
        $.ajax({
            url: goto,
            context: document.body,
            success: function(data){
                $('#mainwindow').html(data + clear);
                $('#mainwindow').find("script").each(function(i){
                    eval($(this).text());
                });
            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

Rob*_*b W 14

当使用XMLHttpRequest对象发出请求时,现代浏览器会添加以下请求标头:

X-Requested-With: XMLHttpRequest
Run Code Online (Sandbox Code Playgroud)

在PHP中,使用以下命令检查此标头是否存在:

$_SERVER['HTTP_X_REQUESTED_WITH']
Run Code Online (Sandbox Code Playgroud)

  • 特别是对于PHP,你可以检查`$ _SERVER ['HTTP_X_REQUESTED_WITH']`. (3认同)