Javascript 200动态、ajax驱动内容的状态

Javascript 200动态、ajax驱动内容的状态,javascript,php,ajax,single-page-application,http-status-codes,Javascript,Php,Ajax,Single Page Application,Http Status Codes,通过ajax动态加载内容并将状态添加到浏览器会话历史堆栈中的单页网站是否应该在每次成功的状态更改时返回“200状态” 我的网站的核心代码如下所示: $(document).on('click', 'a:not([target="_blank"])', function(e) { e.preventDefault(); history.pushState(undefined, undefined, $(this).attr('href')); onUrl

通过ajax动态加载内容并将状态添加到浏览器会话历史堆栈中的单页网站是否应该在每次成功的状态更改时返回“200状态”

我的网站的核心代码如下所示:

$(document).on('click', 'a:not([target="_blank"])', function(e) {
    e.preventDefault();
    history.pushState(undefined, undefined, $(this).attr('href'));
    onUrlChange();
});

function onUrlChange() {
    var url = window.location.pathname;
    $.ajax({
        type: 'POST',
        url: 'engine.php',
        data: {
            ajaxRequest: url,
        },
        dataType: 'json',
    });
};
engine.php
根据URL确定内容-如果URL不正确,它将返回
404状态
,但当URL正确时,它是否应在每次加载页面内容时返回
200状态


目前,每次单击链接时,它都返回200个状态,但这是my engine.php的状态,因此请求输出为:GET example.com/engine.php->[HTTP/1.1 200 OK]

如果您发出任何HTTP请求,并且HTTP请求成功执行,则通常总是返回
200


在某些特殊情况下,您应该使用另一个
2xx
状态之一,但在正常情况下,成功的GET请求应该返回
200 OK

您的问题不太清楚。engine.php是否返回200,而它应该返回404?如果是这样,我们需要知道engine.php在做什么hi@Alex,当URL无法识别时,engine.php正确返回404(via)。当URL被识别(比如/test.html)时,我的engine.php返回“test.html”的内容,但我并没有为“”得到200,而是为“”(通过ajax调用)得到200。所以我的问题是,我是否应该在每次engine.php识别并返回页面内容时为URL归纳200,以保持搜索引擎的正确行为?您可能希望修复engine.php,以便它返回您期望的结果,而不管它是否通过ajax调用。我认为这个问题与您的javascript无关。你能在问题中加入php代码吗