我试图通过$ .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 :
控制台指向以下屏幕截图中的错误
答案 0 :(得分:1)
尝试将dataType
更改为"json"
答案 1 :(得分:0)
自动评估javascript内容类型的响应。 JavaScript JSON解析器将{和}视为块而不是对象。
为JSON文件设置正确的Content-Type标头。 或用.json扩展名保存。
您的网址有 .json 扩展名,而标题是 jsonp ,尝试使其相同
不太确定POST和JSONP :Post data to JsonP