2012-07-26 90 views
0

我有一個Firebase應用,可以在本地主機上完美工作,但在外部觸及時無法工作(通過允許端口轉發到我的路由器)或上傳它到Bluehost。Ajax/Firebase只能在本地主機上運行(同源策略?)

此代碼:

$(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,因爲火力地堡JS包括爲

http://static.firebase.com/demo/firebase.js 

但我的firebase參考是在

http://gamma.firebase.com/ 

我發現了一些方法來解決這個問題,但想知道如何使用Firebase處理它(或者如果同源策略甚至是這裏的問題)。

回答

3

我找到了答案 - 我只是一個愚蠢的錯誤。

在搜索Firebase教程時,我發現了我的錯誤。我包括http://static.firebase.com/demo/firebase.js文件,而教程明確指出包含http://static.firebase.com/v0/firebase.js文件。

我仍然好奇爲什麼demo文件只能在本地主機上工作...

+0

這是一個有趣的問題;很高興你解決了它! – Kato 2012-07-26 19:53:30

1

Firebase將CORS用於JS客戶端的RESTful API和WebSockets,see this answer,所以這不是問題。

看起來像一個與路由有關的問題。您在JavaScript控制檯中遇到錯誤嗎? 「不起作用」有點抽象,更精確的錯誤可能有助於回答第二個問題。

+0

同意!一個精確的錯誤(或鏈接到一個頁面,再現問題)將在這裏幫助。 – 2012-07-26 17:09:12

相關問題