2017-07-05 54 views
2

我對使用API​​非常陌生,並且難以將GET請求發送到IP Geolocation API。我不確定問題出在我的代碼上還是與CodePen有關(可能是我的代碼)。JavaScript/jQuery:在CodePen中設置IP地理位置API

我從IP Geolocation API頁面上列出的示例直接使用了JavaScript。我在看到它在行動之後會修改它,但我根本無法完成它。我嘗試修改網址以包含http://https://

的JavaScript:

$(document).ready(function() { 

    $.getJSON("http://ip-api.com/json/?callback=?", function(data) { 
      var table_body = ""; 
      $.each(data, function(k, v) { 
       table_body += "<tr><td>" + k + "</td><td><b>" + v + "</b></td></tr>"; 
      }); 
      $("#GeoResults").html(table_body); 
     }); 

}); 

HTML:

<div class="weather"> 
    <div class="row title"> 
    <h1>weather</h2> 
    </div> 
    <div class="row icon"> 

    </div> 
    <div id = "GeoResults" class="row temp"> 
    <p class = "city">City here</p> 
    </div> 
</div> 

URL我CodePen:https://codepen.io/mattr8/pen/yXEMRM

API我試圖使用方法:http://ip-api.com/docs/api:json

+0

Hope [this](https://stackoverflow.com/questions/33507566/mixed-content-blocked-when-running-an-http-ajax-operation-in-an-https-page)將有助於 –

+0

,因爲api使用http和codepen使用https,將url更改爲https不起作用,因爲它們不通過https公開服務 –

回答

0

Codepen不希望因爲https而使用ip-api.com。由於codepen是通過https提供的,因此它將阻止任何不是https的請求。如果你去http://ip-api.com/json/?callback=?你會看到你想要達到的信息。如果你去https://ip-api.com/json/?callback=?你會收到一個錯誤。

他們鏈接到的jsbin示例不使用https,所以它工作正常。

因此,要解決您的問題,請在服務或您自己的計算機上使用http創建示例,而不是https請求。