Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用JSONP显示纯HTML_Javascript_Php_Ajax_Json_Jsonp - Fatal编程技术网

Javascript 如何使用JSONP显示纯HTML

Javascript 如何使用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

我们试图避免使用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);
}
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>""});