2013-03-13 62 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

相关问题