getJSON意外令牌错误

时间:2013-10-17 21:43:34

标签: javascript jquery ajax json jsonp

我正试图从美国地质调查局获取地震数据并且我一直收到错误:

未捕获的SyntaxError:意外的令牌:

我尝试使用jsonp格式的$ .ajax并且我一直遇到同样的问题。我在我的网址末尾尝试了没有回调,在这种情况下我收到了错误:

MLHttpRequest无法加载http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_day.geojson。 Access-Control-Allow-Origin不允许原点http://people.oregonstate.edu

$.getJSON(
   "http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_day.geojson&callback=?",
    function(data) {
       console.log(data);
    }
 );

有人可以帮我解决如何获取数据或者除了jQuery之外的其他东西,如果这种方式不可能的话。

2 个答案:

答案 0 :(得分:3)

解决问题的最简单方法是告诉您想要jsonp的服务,然后使用该服务提供的回调。

window.eqfeed_callback = function(data){
    console.log(data);
};
//$.getScript("http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_day.geojsonp");
var s = document.createElement("script");
s.src = "http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_day.geojsonp";
document.getElementsByTagName("head")[0].appendChild(s);

答案 1 :(得分:3)

http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_day.geojsonp

使用他们的JSONP服务
$.ajax({
    url: 'http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_day.geojsonp',
    dataType: 'jsonp',
    jsonp: false,
    jsonpCallback: 'eqfeed_callback'
}).done(function(data) {
    console.log(data);
});