2016-10-18 9 views
0

次のコードを使用して、ajaxとjsonpを使用して地震データ を取得するためにパブリックAPIを呼び出しています。私はさまざまな方法を試してみましたが、私はエラーは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 &コールバック= jQuery111108420504496052599_1476799978359 & _ = 1476799978360 403(禁止されています)、私はこれらのAPIが公開されていることを知っています

答えて

0

あなたのリクエストでは、ステータスコード403で応答が返されています。この点であなたができることはあまりありません。

いくつかのテストを実行するすべてのクエリパラメータを省略すると、サーバーは正常にhttp 200 OKで応答することに気づきました。

これはおそらく、セキュリティの実装が終わったためです。 JSONPを使用せずにこれを行う方法はありますか?ブロックするかどうかは分かりませんが、"CORS"を試してみてください。そうすれば、クエリのパラメータを必要とせずにリクエストを行うことができます。

関連する問題