解析跨域 JSON,出现错误时
2016-03-14
476
我正在使用
$.getJSON
从远程服务器获取一些数据。请注意,我无法控制 JSON 的格式或返回方式。我正在使用此代码:
$(function(){
var API = "https://ratesjson.fxcm.com/DataDisplayer?jsoncallback=?";
$.getJSON(API, function(json) {
var Symbol = json.results[0].Symbol;
console.log('Symbol : ' + Symbol);
});
});
我在控制台中收到此错误:
Uncaught TypeError: null is not a function
我查看了 JSON,我可以看到在对象之前有一个包含
Null
的字符串。有什么办法可以解决这个问题?您可以在此处查看 JSON 及其错误:
https://ratesjson.fxcm.com/DataDisplayer
2个回答
您调用的 API 返回的是 JSONP,而不是 JSON,因此最好使用
$.ajax
并提供相关参数。试试这个:
var API = "https://ratesjson.fxcm.com/DataDisplayer";
$.ajax({
url: API,
dataType: 'jsonp',
crossDomain: true,
success: function(json) {
console.log(json);
}
});
Rory McCrossan
2016-03-14
尝试使用 $.ajax() 而不是 $.get()。它让您完全控制您的 ajax 请求。 参见以下示例。
var request = $.ajax({
url: "https://ratesjson.fxcm.com/DataDisplayer?jsoncallback=?",
method: "POST",
data: { id : '1' },
dataType: "html"
});
request.done(function( msg ) {
$( "#log" ).html( msg );
});
request.fail(function( jqXHR, textStatus ) {
alert( "Request failed: " + textStatus );
});
更多详情: [Jquery 教程] http://api.jquery.com/jQuery.ajax/
sachin k
2016-03-14