$.get not returning html

$.get not returning html

本文关键字:html returning not get      更新时间:2023-09-26

我的简单代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script src="jquery.js"></script>
<script type="text/javascript">
$(function(){
$.get("http://www.facebook.com",function(data){
alert(data);});
});</script></head>
 <body>
</body>
</html>

它应该提醒Facebook内容,但它没有这样做

更新

现在我正在使用 php

<?php
 $str=file_get_contents("http://www.facebook.com");
    echo strip_tags(htmlspecialchars($str)); 
?>

为什么不删除标签?

如果你在服务器端使用php。您可以使用以下命令创建一个返回 html 的服务:

$html = file_get_contents('http://www.facebook.com');

ASP.NET:

using(WebClient client = new WebClient()) 
{
    string html = client.DownloadString("http://www.facebook.com'");
}

我想您刚刚由于同源策略而被浏览器阻止。请参阅控制台,如果您尝试执行此操作,您将收到警告。

如果没有跨域

资源共享或服务器端代理,则无法读取跨域页面。

据我所知,唯一的方法是让域上的服务器脚本读取外部页面(wget,curl,fopen,还有什么)并将其返回到您的页面。您的服务器就像读取远程页面的"桥梁"。

您可能听说过没有跨域限制的JSONP,但是您以这种方式检索的不是HTML/pages,而是脚本。

由于同源政策,除非使用 JSONP,否则您无法从外部网站请求内容。但是,由于您请求的是 HTML,因此这不适用。

另一种方法是创建一个服务器端代理来获取 facebook.com 主页的 HTML,然后将该本地 URL 提供给 $.get() 函数。

您只能在同一域中发出 ajax 请求

但是,您可以使用 JSONP 发出跨域请求
http://en.wikipedia.org/wiki/JSONP

请参阅这篇关于 IBM developerworks 的文章:
http://www.ibm.com/developerworks/library/wa-aj-jsonp1/