XMLHttpRequest referrer and iframe

Gajus picture Gajus · May 6, 2011 · Viewed 8.5k times · Source

Page A contains javascripts function executing XMLHttpRequest. Page A loads page B in iframe. Page B executes parent.makeRequest() function which in turn executes the XHR request. I expect the referrer/origin of the XHR request to be page B, however it is page A. Is there any way to fix this?

Answer

lonesomeday picture lonesomeday · May 6, 2011

You cannot control the value of the Referer header.

Some HTTP headers can be adjusted when making XHR requests using the setRequestHeader method. However, the Referer header is specifically excepted. From the specifications:

The above headers [including Referer] are controlled by the user agent to let it control those aspects of transport. This guarantees data integrity to some extent.

You could, however, set a custom header. For instance, you could use X-Referer, if this suits your application:

xhr.setRequestHeader('X-Referer', location.href);