我正在尝试使用JSONView显示此代码,但在从api回调函数内部调用数据时不会显示,但是当放置在回调之外时会显示非api数据。
// 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>
答案 0 :(得分:0)
JSONView或任何其他json格式化程序检测您是否正在contentType
加载的document
(在http标头上设置)查看json。
由于您必须在client side
(浏览器)上运行此代码,因此contentType
设置为text/html
。
为了让插件正确格式化json,它必须知道你正在查看的是json,它是通过阅读contentType
标题来实现的。
这就是为什么通过这个脚本获取json会将json显示为body属性中的文本,但不会被插件选中。
答案 1 :(得分:0)