0

我试图理解它是如何工作的。

浏览器 Chrome。阿帕奇。

我创建了 js 和 php 代码,但它不起作用。据我了解,首先-使用js向php发送请求,其次-php将etag添加到标头,第三-刷新js后发送标头If-None-Match

JS(jQuery):

$.ajax({
            async:false,
            type: "POST",
            ifModified: true,
            url: 'trackETAG.php',
            withCredentials:true,
            data: { track: true},
            success: function (data){
                newData = data;
            },
            complete: function(XMLHttpRequest, textStatus){
                var eTag = XMLHttpRequest.getAllResponseHeaders();
                var newEtag = eTag;
            }
        });

PHP:

<?php
if(!empty(isset($_POST["track"]))){
    header('Access-Control-Allow-Origin: *');
    header('Access-Control-Allow-Methods: GET, POST');
    header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Etag,  If-None-Match");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Etag: 123");


    $temp = null;
    $zte = null;
    $temp = trim($_SERVER['HTTP_IF_NONE_MATCH']);
     $zte = $temp;
}
?>

HTTP_IF_NONE_MATCH 始终为空。

例子

有人可以帮助我吗?

4

1 回答 1

0

请求类型的问题。Etag 仅适用于我的程序中的 GET

于 2021-01-22T15:17:01.393 回答