未捕获的SyntaxError:意外的令牌:对于有效的JSON

时间:2016-06-23 05:54:15

标签: javascript jquery json

我试图通过$ .ajax方法获取跨域JSON数据

$.ajax({
      type: "GET",
      dataType: 'jsonp',
      url: "http://nrb.org.np/exportForexJSON.php?YY=2016&MM=06",
      crossDomain : true,
    })
    .done(function( data ) {
        console.log("done");
        console.log(data);
    })
    .fail( function(xhr, textStatus, errorThrown) {
      console.log(xhr);
      console.log(xhr.responseText);
        // alert(xhr.responseText);
        // alert(textStatus);
    });

网址返回的JSON是

{
    "Conversion": {
        "Currency": [{
            "Date": "2016-06-23",
            "BaseCurrency": "INR",
            "TargetCurrency": "NPR",
            "BaseValue": "100",
            "TargetBuy": "160.00",
            "TargetSell": "160.15"
        }, {
            "Date": "2016-06-23",
            "BaseCurrency": "USD",
            "TargetCurrency": "NPR",
            "BaseValue": "1",
            "TargetBuy": "107.76",
            "TargetSell": "108.36"
        }, {
            "Date": "2016-06-23",
            "BaseCurrency": "BHD",
            "TargetCurrency": "NPR",
            "BaseValue": "1",
            "TargetBuy": "285.75",
            "TargetSell": "N/A"
        }]
    }
}

我使用http://jsonlint.com/检查了JSON是否有效。 JSON是好的。我收到了控制台错误。

Uncaught SyntaxError: Unexpected token :

控制台指向以下屏幕截图中的错误

enter image description here

2 个答案:

答案 0 :(得分:1)

尝试将dataType更改为"json"

答案 1 :(得分:0)

自动评估javascript内容类型的响应。 JavaScript JSON解析器将{和}视为块而不是对象。

为JSON文件设置正确的Content-Type标头。 或用.json扩展名保存。

您的网址有 .json 扩展名,而标题是 jsonp ,尝试使其相同

不太确定POST和JSONP :Post data to JsonP