0

我有一个 Firebase 应用程序可以在 localhost 上完美运行,但是当我从外部访问它时(通过允许在我的路由器中进行端口转发)或当我将它上传到 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 处理它的最佳方法(或者如果同源策略甚至是这里的问题)。

4

2 回答 2

3

我找到了答案——这只是我的一个愚蠢的错误。

在搜索 Firebase 教程时,我发现了我的错误。我正在包含该http://static.firebase.com/demo/firebase.js文件,而教程明确表示要包含该http://static.firebase.com/v0/firebase.js文件。

我仍然很好奇为什么该demo文件只在本地主机上工作......

于 2012-07-26T17:15:34.280 回答
2

Firebase 将 CORS 用于 RESTful API,将 WebSockets 用于 JS 客户端,请参阅此答案,因此这不是问题。

看起来是与路由有关的问题。您是否在 JavaScript 控制台中遇到错误?“不起作用”有点抽象,更精确的错误可以帮助回答第二个问题。

于 2012-07-26T17:04:42.100 回答