【问题标题】:Ajax / Firebase only works on localhost (same-origin policy?)Ajax / Firebase 仅适用于本地主机(同源策略?)
【发布时间】:2012-07-27 01:15:34
【问题描述】:

我有一个 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 处理它的最佳方法(或者如果同源策略甚至是这里的问题)。

【问题讨论】:

    标签: javascript ajax same-origin-policy firebase


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      Firebase 为 RESTful API 使用 CORS,为 JS 客户端使用 WebSocket,see this answer,所以这不是问题。

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

      【讨论】:

      • 同意!一个精确的错误(或重现该问题的页面的链接)在这里会有所帮助。
      猜你喜欢
      • 1970-01-01
      • 2014-02-05
      • 2019-06-12
      • 2018-11-16
      • 2017-02-25
      • 2023-04-05
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多