2013-03-13 70 views
0

我有以下API如下它返回JSON數據:從使用jQuery或web服務讀取JSON數據C#

API:http://data.mtgox.com/api/1/BTCUSD/ticker JSON:{"result":"success","return":{"high": .......

使用jquery我嘗試了以下,但它沒有給我的數據。

$.getJSON('http://data.mtgox.com/api/1/BTCUSD/ticker', function (data) { 
               alert(data); 
              }); 

$.ajax({ 
         type: 'GET', 
         url: 'http://data.mtgox.com/api/1/BTCUSD/ticker', 
         dataType: 'json', 
         success: function (data) { 
          alert(data); 
         }, 
         error: function (error) { 
          alert(error + "error"); 
         } 
        }); 

但第一我沒有得到任何警告

和第二我得到錯誤警報。

如何使用jQUERY或C#讀取此數據?

THanks

+0

可能是由於相同的原產地政策。你和你要求的數據在同一個域上嗎? – Archer 2013-03-13 11:44:36

+0

第二個錯誤信息是什麼? – Davos555 2013-03-13 11:45:15

+0

試試這個[link](http://stackoverflow.com/questions/15359949/call-webservices-from-javascript-without-using-scriptmanager-in-asp-net) – 2013-03-13 11:45:37

回答

0

我試過你的問題。 Google Chrome Javascript Console中顯示的錯誤是Origin http://localhost:1564 is not allowed by Access-Control-Allow-Origin

請檢查answer此問題並找到您的出路。

+0

nopes,它沒有工作由JSONP – vishal 2013-03-13 11:51:01

1

正如阿切爾所提到的,如果你不在同一個域上,這將不起作用。有一種解決方法使用CORS(http://en.wikipedia.org/wiki/Cross-origin_resource_sharing),但您需要控制域以設置所需的標題或至少讓負責人執行此操作。

另一種選擇是使用JSONP,它基本上將結果包裝在函數調用中,該函數調用在通過注入腳本標記返回時立即運行。問題是你失去了錯誤處理的好東西,你不能取消請求。

+0

我得到一個無效的標籤錯誤 – vishal 2013-03-13 12:04:43

+0

如果你通過JSONP嘗試,你仍然需要訪問數據,因爲JSON需要包裝在一個函數中。該函數是您在構建$ .ajax調用時指定的回調函數。例如。 '回調({「json」:data})' – Alkem1st 2013-03-13 14:31:08

0

是否需要實時數據?就像「我必須將數據看作是當前的數據」?

如果不是(可能是這種情況),我建議你在Web服務器上制定一個預定的過程(假設每隔5分鐘)。這將從源(http://data.mtgox.com)獲取數據並將其放入數據庫表中。

之後,您將創建自己的JSON服務(一種MVC操作方法)併發布表中的數據。

即使mtgox.com由於某種原因停機,它也會讓您的客戶知道您的網站正在工作。

+0

但是如何從mtgox web-service獲取數據。 這是一個主要問題。 – vishal 2013-03-13 12:12:23

+0

您有問題需要從客戶端瀏覽器進行。從Web服務器沒有障礙。問題是允許在瀏覽器上執行的JavaScript僅從來自頁面的域中請求資源。而你的網頁沒有從mtgox.com來到瀏覽器。 – 2013-03-13 12:15:11