Ajax/Firebase funktioniert nur auf localhost (Same-Origin-Richtlinie?)
-
12-12-2019 - |
Frage
Ich habe eine Firebase-App, die auf localhost einwandfrei funktioniert, aber nicht funktioniert, wenn ich extern darauf zugreife (indem ich die Portweiterleitung in meinem Router erlaube) oder wenn ich sie auf Bluehost hochlade.
Dieser Code funktioniert:
$(document).ready(function() {
$("#button").click(function() {
alert('Working!');
});
});
aber das bedeutet nicht:
var firebaseRef = new Firebase('[my firebase url]');
$(document).ready(function() {
$("#button").click(function() {
alert('Working!');
});
});
Nach einigen Recherchen glaube ich, dass das Problem darin liegt Same-Origin-Richtlinie, da das Firebase JS-Include vorhanden ist
http://static.firebase.com/demo/firebase.js
aber meine Firebase-Referenz ist aktiviert
http://gamma.firebase.com/
Ich habe einige Möglichkeiten gefunden, dies zu umgehen, möchte aber wissen, wie ich mit Firebase am besten damit umgehen kann (oder ob die Same Origin Policy hier überhaupt das Problem ist).
Lösung
Ich habe die Antwort gefunden – nur ein dummer Fehler meinerseits.
Beim Durchsuchen der Firebase-Tutorials ist mir ein Fehler aufgefallen.Ich habe das mit einbezogen http://static.firebase.com/demo/firebase.js
Datei, während das Tutorial eindeutig sagt, dass die Datei enthalten sein soll http://static.firebase.com/v0/firebase.js
Datei.
Ich bin immer noch neugierig, warum das so ist demo
Datei funktionierte nur auf localhost...
Andere Tipps
Firebase verwendet CORS für die erholsamen API und die Gewinnung für die JS-Kunden, Diese Antwort , das ist also kein Problem.
sieht aus wie ein Problem mit dem Routing.Haben Sie Fehler in der JavaScript-Konsole?"Funktioniert nicht" ist ein bisschen abstrakt und ein genauerer Fehler könnte helfen, die sekundäre Frage zu beantworten.