无法使用jquery.getJSON()获取json数据

时间:2014-02-24 08:54:16

标签: javascript jquery json

我正在尝试从以下链接http://pubapi.cryptsy.com/api.php?method=singlemarketdata&marketid=132获取json数据。它应该为我提供以下json数据(显示部分数据。

{
"success": 1,
"return": {
"markets": {
  "DOGE": {
    "marketid": "132",
    "label": "DOGE\/BTC",
    "lasttradeprice": "0.00000194",
    "volume": "862686257.04978180",
    "lasttradetime": "2014-02-24 03:26:52",
    "primaryname": "Dogecoin",
    "primarycode": "DOGE",
    "secondaryname": "BitCoin",
    "secondarycode": "BTC",
    "recenttrades": [
      {
        "id": "25951364",
        "time": "2014-02-24 03:37:59",
        "price": "0.00000195",
        "quantity": "41345.42127692",
        "total": "0.08062357"
      },
      {
        "id": "25951344",
        "time": "2014-02-24 03:37:34",
        "price": "0.00000194",
        "quantity": "469263.63233043",
        "total": "0.91037145"
      },
      {
        "id": "25951238",
        "time": "2014-02-24 03:36:51",
        "price": "0.00000194",
        "quantity": "8312.99451077",
        "total": "0.01612721"
      },

我在jquery中使用了以下代码来获取数据

$(document).ready(function() {
     var url =  "http://pubapi.cryptsy.com/api.php?method=singlemarketdata&marketid=132";
     $.getJSON(url,function(data) {
     console.log(data);
   });
});

我能够使用python获取json数据但是使用jquery我没有得到json对象。我在这里错过了什么吗?

2 个答案:

答案 0 :(得分:4)

基本问题是您要做的是Same Origin Policy违规行为

API似乎不支持CORSjsonp,因此您无法使用ajax请求在客户端使用它。

一种可能的解决方案是让您的Web服务器像代理一样运行并将ajax请求发送到您的服务器,然后您的服务器向远程服务器发出api请求并获取响应并将响应转发回客户端。 / p>

答案 1 :(得分:0)

跨域访问可能是您遇到问题的原因。你是在另一个域上调用它吗?

看看以下问题:

Ways to circumvent the same-origin policy