最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Getting Date from http header response - Stack Overflow

programmeradmin1浏览0评论

Okay so I can access the HTTP ajax response header using

xhr.getAllResponseHeaders();

but it doesn't seem to get the Date with it, though its there:

 [Chrome]
**Response Header**
Access-Control-Allow-Origin:*
Cache-Control:no-cache
Content-Length:8092
Content-Type:application/json; charset=utf-8
**Date:Thu, 15 Jan 2015 16:30:13 GMT**
Expires:-1
Pragma:no-cache
Server:Microsoft-IIS/8.0
TotalCount:116
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET

and the code only shows this :

[output on alert xhr.getAllResponseHeaders();]

Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1

here's the the ajax call:

   $.ajax({
        url: url,
        type: "GET",
        contentType: "application/json;charset=utf-8",
        async: true,
        success: function (data,status, xhr) {

        displayNewData(data);
        alert(xhr.getAllResponseHeaders());

    },
    error: function () {
    alert(url);

    }
});

Is there a way where I can get the Date in the response header?

Okay so I can access the HTTP ajax response header using

xhr.getAllResponseHeaders();

but it doesn't seem to get the Date with it, though its there:

 [Chrome]
**Response Header**
Access-Control-Allow-Origin:*
Cache-Control:no-cache
Content-Length:8092
Content-Type:application/json; charset=utf-8
**Date:Thu, 15 Jan 2015 16:30:13 GMT**
Expires:-1
Pragma:no-cache
Server:Microsoft-IIS/8.0
TotalCount:116
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET

and the code only shows this :

[output on alert xhr.getAllResponseHeaders();]

Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1

here's the the ajax call:

   $.ajax({
        url: url,
        type: "GET",
        contentType: "application/json;charset=utf-8",
        async: true,
        success: function (data,status, xhr) {

        displayNewData(data);
        alert(xhr.getAllResponseHeaders());

    },
    error: function () {
    alert(url);

    }
});

Is there a way where I can get the Date in the response header?

Share Improve this question asked Jan 15, 2015 at 16:36 EnderCodeEnderCode 2351 gold badge3 silver badges12 bronze badges
Add a comment  | 

4 Answers 4

Reset to default 9

It might be the case you are making a CORS request and the headers are filtered out for security reasons.

See also similar question about missing response headers in ajax request. The solution might be to set this HTTP header in the server response:

Access-Control-Expose-Headers: Date

This Helped :

var req = new XMLHttpRequest();
req.open('GET', document.location, false);
req.send(null);
var headers = req.getAllResponseHeaders().toLowerCase();
alert(headers);

Accessing the web page's HTTP Headers in JavaScript

in your success method:

 success: function (data,status, xhr) {

    console.log(xhr.getResponseHeader('Date'));


},

If response is a success

res=xhr.getResponseHeader('Date');

if response fails

res=data.getResponseHeader('Date');

If you are using Nginx, you can put below code in Nginx config file:

add_header 'Access-Control-Expose-Headers' 'Date';

for real config example:

location / {
    add_header 'Access-Control-Allow-Origin' '*';
    add_header 'Access-Control-Expose-Headers' 'Date';
    root /usr/local/nginx/html;
    index  index.html index.htm;
}

After restarting your nginx service, you can call getAllResponseHeaders again and it will show you the "Date".

发布评论

评论列表(0)

  1. 暂无评论