当我在文本框中写入URL然后点击提交按钮时,我如何实际从网站检索数据。我希望将数据放入我拥有的div中。这可能吗?
我试过这个,但它不起作用!
<script type="text/javascript">
function contentDisp()
{
var url = $("#text").val();
$("#contentArea").load(url);
}
</script>
<textarea id="text">Write URL here</textarea>
<br />
<input type="button" value="Click" onClick="contentDisp();">
<div id="contentArea"></div>
答案 0 :(得分:11)
由于javascript调用上的沙箱,你不能这样做(你不能在JS加载的域之外调用),至少不能直接
这有两种方法。
第一种方法是通过使用JS设置src参数,将请求的URL加载到iframe而不是div中。简单,容易,但会限制您访问iframe中的数据。
第二个是在您的服务器上发出一个AJAX请求,然后您的服务器查找URL并返回HTML内容(很容易用CURL或类似方法)。这使您可以更多地使用返回的内容,但是由于cookie上的沙箱,您将无法请求任何类似用户的Facebook页面或需要会话的任何内容,因为它将通过服务器会话而不是浏览器会话。
答案 1 :(得分:7)
鉴于它无法进行登录或http身份验证(为了启用你可以使用curl或其他http客户端),这个php one liner可以用作代理来加载来自其他站点的内容
/* proxy.php */
<?php echo file_get_contents($_GET['url']);?>
,假设您将proxy.php放在html页面的同一目录中:
$("#contentArea").load('proxy.php?url=http://example.com');
答案 2 :(得分:1)
网址与网页本身在同一个域中吗?出于安全原因,大多数浏览器不允许跨站点AJAX请求。有关原因的详细信息,请参阅link text
答案 3 :(得分:0)
这是正确的,浏览器不允许AJAX请求到其他域名网站,我遇到了同样的问题,并做了workmad3的提示,如下所示:
$(document).ready(function(){
$('#url').change(function(){
var _url=$(this).val();
$('#webDisplay').attr('src',_url);
});
});
我的网址ID是INPUT文本,非常好的技巧
答案 4 :(得分:0)
1.在您的服务器中生成 load.php 文件。
<?php echo file_get_contents($_GET['u']); ?>
2.in index.html 。
<script type="text/javascript">
function contentDisp()
{
var url = $("#text").val();
$("#contentArea").load('load.php?u='+url);
}
</script>