【问题标题】:read Json data from a webservice using jQuery or C#使用 jQuery 或 C# 从 Web 服务读取 Json 数据
【发布时间】:2013-03-13 11:42:15
【问题描述】:

我有以下返回 json 数据的 API:

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# 读取这些数据?

谢谢

【问题讨论】:

  • 可能是由于同源策略。您与您请求的数据在同一个域中吗?
  • 第二次收到的错误信息是什么?
  • 试试这个link
  • 不,不在同一个域中。但是我们可以使用 c# 来做到这一点吗?我尝试了c#的GetResponse()方法,但是请求超时了。
  • 那么您想在 C# 中创建一个代理,通过 JavaScript 调用 Web 服务来代表您进行调用?

标签: c# jquery web-services


【解决方案1】:

正如 Archer 所说,如果您不在同一个域中,这将不起作用。使用 CORS (http://en.wikipedia.org/wiki/Cross-origin_resource_sharing) 可以解决此问题,但您需要控制域以设置所需的标头,或者至少让负责人这样做。

另一种选择是使用 JSONP,它基本上将结果包装在一个函数调用中,当它通过注入脚本标签返回时立即运行。问题是您丢失了诸如错误处理之类的好东西,并且您无法取消请求。

【讨论】:

  • 如果您通过 JSONP 尝试,您仍然需要访问数据,因为 JSON 需要包装在一个函数中。此函数是您在构建 $.ajax 调用时指定的回调。例如。 callback({"json":data})
【解决方案2】:

我试过你的问题。 Google Chrome Javascript 控制台中显示的错误是Origin http://localhost:1564 is not allowed by Access-Control-Allow-Origin

查看此问题的answer 并找到您的出路。

【讨论】:

    【解决方案3】:

    是否需要实时数据?比如“我必须看到从这一秒开始的最新数据”?

    如果不是(可能是这种情况),我建议您在网络服务器上安排一个计划进程(假设每 5 分钟一次)。这将从源(http://data.mtgox.com)获取数据并将其放入数据库表中。

    之后,您创建自己的 JSON 服务(一种 MVC 操作方法)并从表中发布数据。

    即使 mtgox.com 因某种原因关闭,它也会让您的客户知道您的网站正在运行。

    【讨论】:

    • 但是如何从 mtgox web-service 获取数据。这是一个突出的主要问题。
    • 您从客户端浏览器执行此操作时遇到问题。从网络服务器没有障碍。问题是在浏览器上执行的 JavaScript 只允许从页面来源的域请求资源。而且您的页面没有从 mtgox.com 进入浏览器。
    【解决方案4】:

    如何在 asp.net c# 中使用 jquery 通过 Web 服务获取数据。 更多细节 http://way2finder.blogspot.in/2013/08/how-to-getting-data-through-web.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      • 2018-05-11
      • 1970-01-01
      相关资源
      最近更新 更多