Ajax/Firebase funciona apenas em localhost (política de mesma origem?)
-
12-12-2019 - |
Pergunta
Tenho um aplicativo Firebase que funciona perfeitamente no localhost, mas não funciona quando o acesso externamente (permitindo o encaminhamento de porta no meu roteador) ou quando o carrego no Bluehost.
Este código funciona:
$(document).ready(function() {
$("#button").click(function() {
alert('Working!');
});
});
mas isso não acontece:
var firebaseRef = new Firebase('[my firebase url]');
$(document).ready(function() {
$("#button").click(function() {
alert('Working!');
});
});
Depois de fazer algumas pesquisas, acredito que o problema seja o Política de Mesma Origem, já que o Firebase JS inclui é
http://static.firebase.com/demo/firebase.js
mas minha referência do Firebase está ativada
http://gamma.firebase.com/
Encontrei algumas maneiras de contornar isso, mas quero saber a melhor maneira de lidar com isso com o Firebase (ou se a Política de Mesma Origem é o problema aqui).
Solução
Encontrei a resposta - apenas um erro estúpido da minha parte.
Ao pesquisar nos tutoriais do Firebase, percebi meu erro.Eu estava incluindo o http://static.firebase.com/demo/firebase.js
arquivo, enquanto o tutorial diz claramente para incluir o http://static.firebase.com/v0/firebase.js
arquivo.
Ainda estou curioso para saber por que demo
arquivo funcionou apenas no localhost ...
Outras dicas
Firebase usa CORS para API RESTful e WebSockets para clientes JS, veja esta resposta, então isso não é um problema.
Parece um problema relacionado ao roteamento.Você está enfrentando erros no console JavaScript?"Não funciona" é um pouco abstrato e um erro mais preciso poderia ajudar a responder à questão secundária.