2011-03-23 74 views
1

我的本地機器上運行着一個在sinatra和jruby上運行的與SQL Server交互的API。現在,「本地主機:4567 /得/ 233310/LOC」返回一個JSON對象使用javascript爲本地託管API中的JSON對象提供http請求

[{"uid":233307,"lat":41.4191113333333,"long":-72.8941905}] 

我想要做什麼,現在是讓這個JSON對象和每一個對象的分配給我的JavaScript的變量。 。我認爲最好用http請求完成? (如果有更好的方法..請讓我知道)。

最終,我需要這個每30秒發出一次請求,但我會在稍後處理。

任何人都可以幫助我嗎?

謝謝。

+1

這是一個標準的XMLHttpRequest(AJAX)調用。閱讀[文檔](https://developer.mozilla.org/en/using_xmlhttprequest),然後根據需要添加具體的問題。確保一切都在同一個域中。另外,你可能會發現像jQuery這樣的庫很有幫助。 – 2011-03-23 21:27:14

+0

@MthetheFFlaschen感謝您的回覆。我會嘗試一下。 – Jebish 2011-03-23 21:32:02

回答

0

另一個有用的庫叫做Prototype。閱讀在這裏:

http://www.prototypejs.org/

的代碼,以使在原型這樣的要求是很容易的。只需在您的網頁上Prototype.js庫:

<script src="prototype.js"></script> 

然後運行該代碼:

VAR URL =的 'http://本地主機:4567 /得/ 233310/LOC'; 新的Ajax.Request(URL,{ 方法: '得到', 的onSuccess:功能(傳輸){ VAR JSON = transport.responseJSON; window.alert(json.inspect());} });

完成後,您應該看到一個彈出警報,顯示您的JSON對象的內容。

您的服務器端腳本應提供JSON的HTTP頭「Content-Type」設置爲「application/json」,以便客戶端腳本代碼知道它應該嘗試將其解析爲JSON。

希望這是有用的。

+0

非常感謝您的回覆。我嘗試了代碼,它的工作(有點)。它正在與本地主機上運行的API進行通信。但是我得到兩個錯誤:1)XMLHttpRequest無法加載http:// localhost:4567/get/233310/loc。來源null不被允許的訪問控制允許Origin.AND,2) 2Refused得到不安全的標題「X-JSON」。 另外我的服務器端腳本是用Jruby(Sinatra)編寫的。那麼有什麼想法? – Jebish 2011-04-05 14:44:23