【问题标题】:Error is jsonp response错误是 jsonp 响应
【发布时间】:2017-02-27 20:55:52
【问题描述】:

我正在使用以下代码调用公共api获取地震数据 使用 ajax 和 jsonp。我尝试了不同的方法,但我无法解决下面代码中的错误

    $.ajax({
        url: "http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_day.geojsonp?jsonerror=t&callback=localJsonpCallback",
         jsonp: "localJsonpCallback",
         dataType: "jsonp",

        data:'',
        success: function( response ) 
        {
            console.log( response ); // server response
        }
    });
function t(response) 
 {
     console.log( response );
     }

 function localJsonpCallback(response) 
 {
        if (!response.Error) 
        {
            console.log( response ); 
        }
        else 
        {
            alert(response.Message);
        }
    }

但我收到以下错误

jquery-latest.js:9803 GET http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_day.geojsonp?j…allback&callback=jQuery111108420504496052599_1476799978359&_=1476799978360 403(禁止),我知道这些 api 是公开的

【问题讨论】:

    标签: jquery ajax jsonp


    【解决方案1】:

    服务器正在为您的请求返回状态代码 403 Forbidden 的响应。在这方面你无能为力。

    做了一些测试,我意识到如果你省略所有查询参数,服务器会正​​确响应 http 200 OK。

    这可能是他们最终的一些安全实施。有什么方法可以在不使用 JSONP 的情况下做到这一点?我不确定他们是否会阻止它,但您可以尝试使用"CORS"。这样您就可以在不需要查询字符串参数的情况下发出请求。

    【讨论】:

      猜你喜欢
      • 2013-07-31
      • 2014-02-05
      • 2012-10-12
      • 2015-05-28
      • 2013-10-03
      • 1970-01-01
      • 2013-10-02
      • 1970-01-01
      • 2012-07-29
      相关资源
      最近更新 更多