2017-03-02 15 views
0

私はこのコードをJSONViewで表示しようとしていますが、APIコールバック関数内からデータを呼び出すときは表示されませんが、コールバック外に置かれた場合は非APIデータが表示されます。 (HTTPヘッダに設定されたとして)あなたがロードされdocumentcontentTypeに基づいてJSONを表示している場合jsonViewでJsonデータが表示されないのはなぜですか?

// Call FreeGeoIP API to get browser IP address 
 
$.getJSON('https://freegeoip.net/json/', function(data) { 
 
    var ipaddress = data.ip; 
 

 
    // Get browser language 
 
    var language = window.navigator.language; 
 

 
    // Get software 
 
    var software = window.navigator.appVersion; 
 
    var regExp = /\(([^)]+)\)/; 
 
    software = regExp.exec(software)[1]; 
 

 
    // Add data to obj 
 
    var obj = { 
 
    'ipaddress': ipaddress, 
 
    'language': language, 
 
    'software': software 
 
    }; 
 

 
    // Write obj to document 
 
    $('body').html(JSON.stringify(obj)); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+1

どういう意味ですか?あなたのコードは動作します。 JSONP呼び出しでは機能しないのですか? – mplungjan

+1

それは動作します。あなたのコンソールのエラーは何ですか? ERR_BLOCKED_BY_CLIENT? AdBlockを使用している場合は、AdBlockを無効にする必要があります。要求をブロックします。 –

答えて

0

JSONViewまたはその他のJSONフォーマッタを検出します。

client side(ブラウザ)でこのコードを実行する必要があるため、contentTypetext/htmlに設定されています。

プラグインがjsonを正しくフォーマットするためには、あなたが見ているのは確かにjsonであり、それはcontentTypeヘッダーを読むことによって知る必要があります。 これは、このスクリプトを使用してjsonを取得すると、body属性のテキストとしてjsonが表示されますが、プラグインでは選択されません。

関連する問題