我有一个具有挑战性的问题。我正在使用Blogger JSON API来获取JSON数据并在页面上显示。通常它非常简单:
<script src="http://blog-name.blogspot.com/feeds/posts/default?alt=json-in-script&callback=renderPost&max-results=4"></script>
您将此脚本嵌入到请求数据并将数据对象传递给javascript回调的页面上(在这种情况下,回调称为renderPost
)。
问题是我使用Closure编译器来编译我的其余JS。因此,renderPost
被混淆了。
你会如何使用javascript模仿这种行为?你可以使用AJAX请求来获取JSON对象吗?
部分问题是我真的不知道Blogger在这里做了什么,所以对此的解释也会有所帮助。
答案 0 :(得分:3)
在Closure compiler中,您可以按如下方式导出变量:
window['varname'] = varname;
例如:
// ==ClosureCompiler==
// @compilation_level ADVANCED_OPTIMIZATIONS
// @output_file_name default.js
// ==/ClosureCompiler==
window['renderPost'] = renderPost;
function renderPost(name) {
return prompt('', '');
}
汇编为:
window.renderPost=a;function a(){return prompt("","")}a();
而不是(省略window['renderPost'] = renderPost
时):
prompt("","");
答案 1 :(得分:1)
它正在执行jsonp,这是目前从其他域获取json的唯一方法。不,您不能使用常规的ajax请求进行跨域通信。请参阅Rob W关于如何解决问题的答案。