我希望使用JavaScript从Web服务端点(例如“ http://www.example.com”)请求数据。
检索后,将有一个回调函数来处理响应(将是一个JSON对象)
我该如何写呢?框架代码即可。
会是这样的:
<script>
function callback(data)
{
// the response text would be processed here.
}
url="http://www.example.com";
var script = document.createElement('script');
script.src = url;
script.onload=callback;
document.body.appendChild(script);
</script>
提前感谢。
如上述评论中的@JuicyScripter所指出的...
“ Wikipedia使用的Wikimedia API支持JSONP回调参数。”
这意味着您可以向查询添加回调...
var url = "http://en.wikipedia.org/w/api.php?action=query&prop=info|revisions&intoken=edit&titles=Main%20Page&format=json&callback=my_callback";
最后,我添加了&callback=my_callback
。将会发生的是,而不是发送像...这样的JSON响应。
{ query: { pages: { 15580374: { ... } } } }
...它现在将被包装在一个函数调用中。这将是有效的JavaScript,因此您的
script
请求将执行该函数并传递数据。
my_callback({ query: { pages: { 15580374: { ... } } } });
所以您只需要一个回调函数,该函数的名称与您在查询中提供的函数的名称相同...
function my_callback( data ) { console.log( data ); }
确保此功能在全球范围内可用。
然后摆脱onload
行,您的代码应该可以正常工作...
var url = "http://en.wikipedia.org/w/api.php?action=query&prop=info|revisions&intoken=edit&titles=Main%20Page&format=json&callback=my_callback"; var script = document.createElement('script'); script.src = url; document.body.appendChild(script);
当脚本到达并运行时,它将调用您的函数并向其传递所请求的数据。
您应在此处查看示例:http://api.jquery.com/jQuery.getJSON/