我想知道我怎么可以加载HTML,这是在不同的域托管?
我使用的JavaScript,并想创建一个书签,使我解析外部HTML。
我一直在google搜索白白小时...
我想知道我怎么可以加载HTML,这是在不同的域托管?
我使用的JavaScript,并想创建一个书签,使我解析外部HTML。
我一直在google搜索白白小时...
JavaScript是不允许做跨域请求。 这是一个很大的安全隐患。 取而代之的是,你必须在服务器上执行一个脚本,并使其返回结果给您的JavaScript函数。
例如,假设你使用JavaScript和PHP,你可以设置应用程序是这样工作的:
JavaScript的发起一个Ajax请求的页面(或脚本)位于服务器上。 它传递任何所需的参数,这个页面。 下面的代码是基于jQuery(为更加简洁的缘故),但原理是一样的,不管你的框架。
var sParameters = " ... " // this is defined by you
$.ajax({
url: 'your-server-side-code.php',
processData: false,
data: sParameters,
success: function(sResponse) {
// handle the response data however you want
}
});
服务器端代码将响应该请求并且沿着必要的参数的跨域网站通过。 PHP的cURL库有利于这一点。
// very contrivuted cURL configuration for purposes of example...
$curl_connection = curl_init();
$str_url = "http://you-url.com";
curl_setopt($curl_connection, CURLOPT_URL, $str_url);
curl_setopt($curl_connection, CURLOPT_GET, 1);
// ... keep setting your options ...
$str_response = curl_exec($curl_connection);
curl_close($curl_connection);
当跨域网站回应,您的服务器端代码可以重复响应返回给初始请求。 这或许应该响应回之前被验证,但它只是一个例子。
print_r($str_response);
然后一个JavaScript响应处理函数可以解析传入响应数据。 注意上面的JavaScript代码的第一个块的成功的功能。
如果你没有自己的另一页,这将是非常困难的。
事实上,你不能在JavaScript中另一个域的请求。 你能做的唯一的事情就是从另一个域加载脚本:
<script type="text/javascript" src="http://otherdomain.com/script.js"></script>
如果这样做的目的是加载从其他域和数据(正如我说)你自己的其他网站,您可以创建的script.js文件,这将载入您在原始网站所需要的数据。
记住,这是一个微妙的事情,如果你知道会有脚本应该只是做。
您可以从跨域请求localhost
,但如果你打算这段代码部署到服务器时,它不会去上班。 既然你正在开发一个书签,我认为你可以做到这一点。
你需要使用AJAX来获取远程的HTML。
在jQuery的库使得如此简单这个任务...
$.get("http://www.google.com", function(html) { alert(html); });