2013-05-29 42 views
1

我知道,要從JavaScript連接到數據庫,我需要提到普通JavaScript代碼中的數據庫憑證。因此,對於一個具有巨大安全風險的在線應用程序而言。但在我的情況下,我想編寫一個本地存儲的小型JavaScript應用程序。所以憑證不會顯示給世界,但只是給我的用戶,我的應用程序,這是可以接受的。如何從JavaScript連接到MySQL?

這個動機背後是我想連接到一個沒有運行PHP服務器的在線數據庫,只需從嵌入在本地頁面的JavaScript中。我的目標是提供一個應用程序,可以由用戶運行,而不需要PHP和服務器,但數據庫服務器除外。它類似於桌面應用程序,但在瀏覽器中運行。

如何從JavaScript連接到在線MySQL數據庫?我在Stack Overflow上發現的所有其他類似問題都建議線程啓動器針對此用法,原因很充分,但尚未回答問題。

我聽說從JavaScript連接到MySQL是不可能的。但是,用JavaScript編寫的Windows 8 Metro Apps如何處理這個問題呢?

+0

可能重複:http://stackoverflow.com/questions/3020751/can-javascript-connect-with-mysql –

回答

3

總是需要後端中繼器。對於這個問題,您可以設置一個輕量級服務器,使用node.js將數據庫訪問請求轉發到mysql服務器。

+0

所以我需要一個服務器端腳本,預計的用戶名,密碼和查詢MySQL數據庫,以便服務器發送請求?爲什麼我無法直接從JavaScript發送請求?這似乎對我沒有技術限制。 – danijar

+0

出於安全原因,在瀏覽器中運行的JavaScript對本地文件/設備/其他東西的訪問非常有限,並且不可能通過mysql創建與mysql服務器的通用套接字連接。 – kyriosli

+0

我試過了,但是我無法向服務器腳本發送ajax請求,因爲這將是本地JavaScript的跨站點腳本。 – danijar

1

如果您專注於特定的Web瀏覽器,也許您會找到解決方法。但是,如果你正在考慮獨立於用戶代理的本地應用程序,則應遵循標準以達到可預測的行爲(或至少是最佳方法)。在W3C standards你有存儲兩種選擇:

Web Storage API:你只限於鍵 - 值存儲,但是很well supported
Indexed Database API。我沒有經驗,但it's supported

如果你不限制用戶上下文受限機和用戶代理,你可以用如上所述,然後提升你的應用更先進的瀏覽器的標準存儲解決方案開始(甚至與MySQL可能!) ,建議在Progressive Enhancement