首页 > 解决方案 > 动态、ajax 驱动的内容的 200 状态

问题描述

通过 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 Status,但是200 Status当 URL 正确时,它是否应该在每次加载页面内容时返回?

目前,每次点击链接都会返回 200 状态,但这是我的 engine.php 的状态,所以请求输出为:GET example.com/engine.php -> [HTTP/1.1 200 OK]

标签: javascriptphpajaxsingle-page-applicationhttp-status-codes

解决方案


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

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


推荐阅读