Anyorigin 使用 JSONP,因此您无需使用 AJAX 调用加载它。相反,callback
查询参数应该是一个函数名,你应该像普通脚本标签一样加载它:
<script src="http://anyorigin.com/get?url=google.com&callback=myCallbackFunction"></script>
加载脚本时,它会自动执行您在回调查询参数中指定的名称的函数。当然,要让它工作,你需要一个这样定义的函数:
<script>
function myCallbackFunction(myData) {
//myData.contents has your html, do something here
}
</script>
请注意,函数必须在脚本之前定义,因此要么需要动态嵌入脚本,要么需要在脚本之前定义函数。
有一些棘手的部分,例如您如何填充 iframe,以及需要如何声明函数回调,所以我在这里包含了一个完整的示例:
<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
function myCallbackFunction(myData) {
$(function() {
$("#test").contents().find('html').html(myData.contents);
});
}
</script>
<script src="http://anyorigin.com/get?url=http://google.com/&callback=myCallbackFunction"></script>
</head>
<body>
</body>
<iframe id='test' style='width: 100%; height: 100%'>
</html>
请注意,我已经在 jquery 文档 onload 事件中包装了更新 iframe 内容的调用。如果没有这样做,那么调用将尝试在 iframe 存在之前填充它,并且会静默失败。