CORS and Origin header?

后端 未结 2 1248
长发绾君心
长发绾君心 2020-12-13 04:08

When we need to invoke an Ajax request we do :

if(typeof XMLHttpRequest !== \'undefined\') xhr = new XMLHttpRequest();
else
{
    var versions = [\"Microsof         


        
2条回答
  •  时光说笑
    2020-12-13 05:11

    The Origin header

    When this header is added ?

    During the header's stage, before the document's body is sent (after open, before send).

    Is it added when a browser (that support CORS) is doing a request ? ( cross domain or non-cross-domain?)

    It is added when the origin doesn't match the page from which the XMLHttpRequest is created, but may also be sent in a same-origin request.

    Or does it added automatically when the browser "sees" that the request target origin is different from the current origin...

    Yes.

    However, the browser will always send the required Origin headers when necessary.

    This is part of the XMLHttpRequest spec; if you're making a cross-domain request, in the request headers an extra header is sent. This header is e.g. Origin: http://www.stackoverflow.com and is appended by a standards-following browser without user interaction.


    You can read more on the specification in MozillaWiki's Security section, WHATWG and html5.org. It is implemented by (that I know of) FireFox and Google Chrome. I don't believe it is part of W3C yet. Further do not assume the origin header is true, as it can be set manually by modified borwsers or other software.

提交回复
热议问题