如何使用JSONP显示纯HTML
How to display pure HTML using JSONP
我们试图避免使用iframe,而是使用基于javascript、jquery、jsonp和php的web小部件来显示跨域html网站的内容。我们希望在小部件中显示完整的页面,但从我们阅读的所有教程中,都提到我们需要提供JSON数据类型,以便跨域JSONP工作。
以下是我们尝试的
主要JS
function render() {
jQuery.getJSON(serverFQDN + '/widget.php?callback=?', {
install_url: window.location.href
}, serverResponse);
}
function serverResponse(data) {
jQuery(container).html(data.html);
}
小工具.php
<?php echo $_GET['callback'] ?>({
"html": "<?php echo 'hello'; ?>"
});
我们能够显示简单的html实体,如-
<?php echo $_GET['callback'] ?>({"html": "<li>TEST</li>"
});
但不是整页,即
<?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; ?>"
});
您应该使用cURL或Firebug进行检查,但我认为您对HTML进行了双重JSON编码。
也不清楚你为什么写:
echo $_GET['callback'] ?>({"html": "<?php echo $output; ?>" });
而不是
echo $_GET['callback'] ?>({"html": $output });
EDIT:没关系,我有它。您的JSON编码只是Javascript编码——但您有一组额外的引号!
如果$output是"<li>TEST</li>"
,则您正在创建的文件是
jsonpCallback({"html" : ""<li>TEST</li>""});
嗯,我想。就像我说的,使用cURL或Firebug来检查实际输出。
相关文章:
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 使用鼠标悬停JavaScript/HTML显示文本
- 用javascript在html显示列表中显示新成员
- 尊重“; 〃;从HTML显示中的API响应返回的换行符(和特殊字符)
- HTML 显示/隐藏元素 JS 不起作用
- 从一个文本框执行代码,并在另一个文本框中以 HTML 显示输出
- 使用javascript for html显示特定时区的日期和时间
- 如何将一个元素的外部HTML显示为另一个元素的内容
- 将SQL BIT转换为JSON,直到jQuery,最后以HTML显示
- 使用 Javascript 迭代以 HTML 显示多个图像
- 文本(输入)字段中的 HTML 显示结果
- PHP - 作曲家自动加载器导致 html 显示在浏览器中
- 将HTML文件中的表单提交到PHP文件,并以相同的HTML显示结果
- 如何使 HTML/Javascript 从 PHP 脚本接收数据并以 HTML 显示
- 显示一个图像,然后使用 HTML 显示另一个图像
- input type=“password” 在 IE 11 上使用 HTML 5 显示文本
- 使用 JSON 从 PHP 返回数组并以 HTML 显示内容的适当方法
- Jquery对话框IE9内容未使用html显示
- HTML显示在“;查看源“;与Firebug中显示的HTML不同
- 使用jQuery.HTML()插入时HTML显示不正确