鍍金池/ 問(wèn)答/PHP  HTML/ 在JavaScript中怎么使用getAllResponseHeaders方法獲

在JavaScript中怎么使用getAllResponseHeaders方法獲取頁(yè)面的Response Headers數(shù)據(jù)

1、目前在學(xué)習(xí)AJAX,在跟著教程學(xué)習(xí)碰到一個(gè)問(wèn)題,使用getAllResponseHeaders無(wú)法獲取到頁(yè)面的Response Headers數(shù)據(jù)。新手一枚,目前自學(xué)前端,有什么提問(wèn)不恰當(dāng)?shù)模M灰橐?,謝謝大家。

2、出現(xiàn)的問(wèn)題,console.log(this.getAllResponseHeaders())返回的結(jié)果如圖所示
圖片描述

而教程中的結(jié)果是這樣的:
圖片描述

以下是我的代碼

<script>

    let xhr = new XMLHttpRequest();
    console.log(xhr.readyState);
    // ==>0
    // 表示初始化,請(qǐng)求代理對(duì)象

    xhr.open('get', 'http://localhost/time.php');
    console.log(xhr.readyState);
    // ==> 1
    // open 方法已經(jīng)調(diào)用,建立一個(gè)與服務(wù)端特定端口的連接

    xhr.send();

    xhr.addEventListener('readystatechange', function () {
        // if (this.readyState !== 4) {
        //     return false;
        // }
        // console.log(this.responseText);
        // console.log(this.readyState);
        switch (this.readyState) {
            case 2:
                console.log(this.getAllResponseHeaders());
                console.log(this.responseText);
                // ==> 2
                // 已經(jīng)接受到了響應(yīng)報(bào)文的響應(yīng)頭
                break;
            case 3:
                console.log(this.readyState);
                break;
            case 4:
                console.log(this.readyState);
                break;
        }
    });

</script>
<?php

// 指定允許其他域名訪(fǎng)問(wèn)
header('Access-Control-Allow-Origin:*');
// 響應(yīng)類(lèi)型
header('Access-Control-Allow-Methods:PUT,GET,POST,HEAD,DELETE');
// 響應(yīng)頭設(shè)置
header('Access-Control-Allow-Headers:x-requested-with,content-type');

header('Access-Control-Expose-Headers:X-Pagination-Current-Page,Content-Type');


echo time();

3、請(qǐng)問(wèn)如何操作才能達(dá)到教程中的效果呢?目前已經(jīng)嘗試搜索網(wǎng)站,但也沒(méi)辦法解決問(wèn)題。因剛學(xué)習(xí),一些網(wǎng)上查到的資料自己也看不太懂,希望能得到大家的幫助,謝謝大家了。

4、以下是我看過(guò)的相關(guān)資料:
https://segmentfault.com/q/10...
https://segmentfault.com/q/10...
https://blog.csdn.net/fdipzon...
http://www.ruanyifeng.com/blo...

回答
編輯回答
扯機(jī)薄

這只取決于你服務(wù)端的響應(yīng)。在這頁(yè)面打開(kāi)開(kāi)發(fā)者工具,然后換成你這個(gè)segmentfault問(wèn)題的url,你就看到和教程相似的結(jié)果?;蛘唿c(diǎn)開(kāi)你有問(wèn)題的頁(yè)面,點(diǎn)開(kāi)Network,你也能明白為什么你只有content-type。

2017年6月20日 16:08
編輯回答
涼汐

這是我剛在網(wǎng)上看到的,IE模式下可以。那如果這個(gè)getAllResponseHeaders方法只能寫(xiě)使用,那么有什么辦法可以讓谷歌和火狐都能支持呢?教程中使用的是谷歌瀏覽器
圖片描述

2017年10月19日 04:39