Is it possible to alter http request's header

2019-02-17 09:02发布

问题:

Is it possible to use some kind of JavaScript to change or set a HTTP request's header?

回答1:

Headers are passed long before javascript is downloaded, let alone interpreted. The short is answer is no.

However, if you're speaking in the context of an ajax call (let's use jQuery as an example), the request headers can be written.

See reading headers from an AJAX call with jQuery. See setting headers before making the AJAX call with jQuery

However, if your javascript is server-side (e.g. node.js) that would be a yes (probably not since the post mentions HTML):

var body = 'hello world';
response.writeHead(200, {'Content-Length': body.length,'Content-Type': 'text/plain' });


回答2:

Using the XMLHttpRequest object, you can use the setRequestHeader function.

A little code to get you on your way:

var xhr = new XMLHttpRequest()
xhr.open("GET", "/test.html", true);
xhr.setRequestHeader("Content-type", "text/html");

xhr.send();

The method setRequestHeader must be called after open, and before send.

More info: https://developer.mozilla.org/en/DOM/XMLHttpRequest#setRequestHeader()