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()