Qual delas é a mais eficaz contra a verificação se o agente do usuário está acessando através do domínio correto.
Gostaríamos de mostrar um pequeno aviso de estilo 'barra superior' baseado em js se eles estiverem acessando o domínio usando algum tipo de proxy da Web (pois ele tende a quebrar os js).
Estávamos pensando em usar o seguinte:
var r = /.*domain\.com$/;
if (r.test(location.hostname)) {
// showMessage ...
}
Isso resolveria todos os subdomínios que usamos.
Qual devemos usar host ou hostname?
No Firefox 5 e Chrome 12:
console.log(location.host);
console.log(location.hostname);
.. mostra o mesmo para ambos.
Isso ocorre porque a porta não está realmente na barra de endereços?
W3Schools diz que o host contém a porta.
Location.host/hostname deve ser validado ou podemos ter certeza no IE6 + e em todos os outros que existirão?
Respostas:
Como um pequeno memorando: a anatomia do link interativo
-
Em suma (assumindo uma localização de
http://example.org:8888/foo/bar#bang
):hostname
da-teexample.org
host
da-teexample.org:8888
fonte
:
e da porta. Gostaria de saber quanto da discussão ainda está disponível a partir de quandolocation.host
estava sendo formulada ... Suspeito que seja chamada hoje porque ninguém presente havia lido ou pensado em mencionar essa RFC.host inclui apenas o número da porta, se houver um especificado. Se não houver um número de porta especificamente no URL, ele retornará o mesmo que o nome do host. Você escolhe se deseja corresponder ao número da porta ou não. Veja https://developer.mozilla.org/en/window.location para mais informações.
Eu diria que você deseja que o nome do host obtenha apenas o nome do site.
fonte
Se você está insistindo em usar o botão
window.location.origin
Você pode colocar isso no topo do seu código antes de ler oorigin
Solução
PS: Para constar, era realmente a pergunta original. Já foi editado :)
fonte
window.location.origin
em sua pergunta. A pergunta deles era realmente específica sobre coisas que não sãowindow.location.origin
.Sua pergunta principal foi respondida acima. Eu só queria salientar que o regex que você está usando tem um erro. Ele também terá sucesso no
foo-domain.com
qual não é um subdomínio dedomain.com
O que você realmente quer é isso:
fonte
MDN: https://developer.mozilla.org/en/DOM/window.location
Parece que você obterá o mesmo resultado para ambos, mas
hostname
contém um nome de host claro, sem colchetes ou número de porta.fonte
Apenas para adicionar uma observação de que o navegador Google Chrome possui atributo de origem para o local. que fornece todo o domínio, do protocolo ao número da porta, conforme mostrado na captura de tela abaixo.
fonte