Javascript 如何使用JSONP显示纯HTML
我们试图避免使用iframe,而是使用javascript、jquery、jsonp和基于php的web小部件来显示跨域html站点的内容。我们希望按照小部件中的原样显示整个页面,但从我们阅读的所有教程中可以看出,我们需要提供JSON数据类型,以便跨域JSONP工作 这是我们试过的- 主JSJavascript 如何使用JSONP显示纯HTML,javascript,php,ajax,json,jsonp,Javascript,Php,Ajax,Json,Jsonp,我们试图避免使用iframe,而是使用javascript、jquery、jsonp和基于php的web小部件来显示跨域html站点的内容。我们希望按照小部件中的原样显示整个页面,但从我们阅读的所有教程中可以看出,我们需要提供JSON数据类型,以便跨域JSONP工作 这是我们试过的- 主JS function render() { jQuery.getJSON(serverFQDN + '/widget.php?callback=?', { install_url: window.loc
function render() {
jQuery.getJSON(serverFQDN + '/widget.php?callback=?', {
install_url: window.location.href
}, serverResponse);
}
function serverResponse(data) {
jQuery(container).html(data.html);
}
Widget.php
<?php echo $_GET['callback'] ?>({
"html": "<?php echo 'hello'; ?>"
});
({
“html”:”
});
我们能够显示简单的html实体,如-
<?php echo $_GET['callback'] ?>({"html": "<li>TEST</li>"
({“html”:“测试 ”
}))
但不是整页,即
<?php
$url = "http://localhost/page.html";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$output = curl_exec($curl);
curl_close($curl);
$output = json_encode($output);
echo $_GET['callback'] ?>({"html": "<?php echo $output; ?>"
({“html”:“
})) 您应该使用cURL或Firebug进行检查,但我认为您对HTML进行了双重JSON编码 也不清楚你为什么要写:
echo $_GET['callback'] ?>({"html": "<?php echo $output; ?>" });
编辑:没关系,我有。您正在进行JSON编码,只是为了进行Javascript编码——但您还有一组额外的引号
如果$output是“TEST ”
,则您正在创建的文件是
jsonpCallback({"html" : ""<li>TEST</li>""});
jsonpCallback({“html”:“TEST ”});
嗯,我想。如我所说,使用cURL或Firebug检查实际输出
jsonpCallback({"html" : ""<li>TEST</li>""});