我有一个适用于localhost的Firebase应用程序,但是当我从外部访问它时(通过在我的路由器中允许端口转发)或当我将其上传到Bluehost时,它不起作用。
此代码有效:
$(document).ready(function() {
$("#button").click(function() {
alert('Working!');
});
});
但这不是:
var firebaseRef = new Firebase('[my firebase url]');
$(document).ready(function() {
$("#button").click(function() {
alert('Working!');
});
});
经过一些研究后,我认为问题是Same Origin Policy,因为Firebase JS包括
http://static.firebase.com/demo/firebase.js
但是我的firebase引用是
http://gamma.firebase.com/
我找到了几种方法来解决这个问题,但想知道使用Firebase处理它的最佳方法(或者如果同源策略甚至是问题)。
答案 0 :(得分:3)
我找到了答案 - 对我来说只是一个愚蠢的错误。
在搜索Firebase教程时,我发现了自己的错误。我收录了http://static.firebase.com/demo/firebase.js
文件,而教程明确说明要包含http://static.firebase.com/v0/firebase.js
文件。
我仍然很好奇为什么demo
文件仅适用于localhost ...
答案 1 :(得分:1)
Firebase使用CORS作为REST客户端的RESTful API和WebSockets see this answer,因此这不是问题。
看起来像是与路由相关的问题。您是否在JavaScript控制台中遇到错误? “不起作用”有点抽象,更准确的错误可以帮助回答次要问题。