Seria bom incluir o cabeçalho Referer
como padrão, obtendo o URL da página atual. Tal como acontece com os cookies. Eu estava me perguntando por muito tempo por que minha solicitação não estava funcionando como funcionava na versão antiga e no console JS.
Era uma solicitação POST
que exigia que o cabeçalho do referenciador fosse definido para a página atual em que eu estava, provavelmente para interromper as solicitações de outras páginas.
Faz sentido fazer isso automaticamente para solicitações da mesma origem, correspondendo ao comportamento de GM_xmlhttpRequest e de XHR normal. Para origem cruzada, o usuário pode especificar manualmente o referenciador que deseja.
GM.xmlhttpRequest corresponde ao comportamento de XHR normal. Nenhum deles envia um referer quebrando meu código que funciona em tampermonkey.
E tem certeza de que GM_xmlhttpRequest enviaria um referenciador? Ainda não verifiquei a versão mais recente do greasemonkey incluindo GM_xmlhttpRequest, mas pelo último comentário em https://greasyfork.org/en/forum/discussion/6928/gm-xmlhttprequest-vs-xmlhttprequest não era o caso em 2015.
Comentários muito úteis
Faz sentido fazer isso automaticamente para solicitações da mesma origem, correspondendo ao comportamento de GM_xmlhttpRequest e de XHR normal. Para origem cruzada, o usuário pode especificar manualmente o referenciador que deseja.