chrome extension: refuse header “date” in ajax req

2020-03-17 03:56发布

I have a javascript code to be used for api (ajax) and I need to send header "date" to api-server (required header), but chrome tells me 'refused to set unsafe header "Date" ' and I get response from api-server like "missing required http date header".

I'm using jquery.

code sample:

var d = new Date();
var headers = {};
headers["Date"] = d.toUTCString();
jQuery.ajax({
            url: '<some HTTPS url>'
            type: "get",
            crossDomain: true,
            headers: headers,
            ....

})

the same code works fine in firefox. does anybody have any ideas how to fix it?

3条回答
仙女界的扛把子
2楼-- · 2020-03-17 04:34

Yeah Chrome must refuse your request because the standard says:

Terminate these steps if header is a match for one of the following headers: [...]

  • Date

Reference: http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader-method

查看更多
爱情/是我丢掉的垃圾
3楼-- · 2020-03-17 04:34

You can't. Since you are sending a XHR request it MUST be terminated according to the standard when you set a whole list of prohibited headers:

http://www.w3.org/TR/XMLHttpRequest2/#the-setrequestheader-method

You'll need to proxy through your originating url or some other work around.

查看更多
虎瘦雄心在
4楼-- · 2020-03-17 04:38

Its lame because if you use Firefox and the RestClient you can do it. But you can't if you use Chrome and the "Advanced Rest Client"

查看更多
登录 后发表回答