0

基本上,当人们单击链接时,我试图获取远程内容。

它在 Coda HTML 预览窗口中工作,但是当我在真实浏览器(Chrome / FF / Safari)中测试 html 时,它不起作用,不会获取远程内容。(我确信 jquery 正在工作,因为 alert('url is ' + url); 当我点击链接时弹出)

它是有线的。怎么了?

在此处输入图像描述

在此处输入图像描述

我的代码如下

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Sample</title>

  <link type="text/css" href="http://localhost/jquery-ui-1.8.20.custom/css/smoothness/jquery-ui-1.8.20.custom.css" rel="stylesheet" />
  <script type="text/javascript" src="http://localhost/jquery-ui-1.8.20.custom/js/jquery-1.7.2.min.js"></script>
  <script type="text/javascript" src="http://localhost/jquery-ui-1.8.20.custom/js/jquery-ui-1.8.20.custom.min.js"></script>

  <script type="text/javascript">
    $(document).ready(function() {
        $('#links a').click(function(e) {
            var url = $(this).attr('href');
                    alert('url is ' + url);  
            $('#content').load(url);
            e.preventDefault();
        });
    });  // document ready
  </script>

</head>

<body>

<ul id="links">
  <li><a href="http://google.com">Google</a></li>
  <li><a href="http://yahoo.com">Yahoo</a></li>

</ul>
<div id="content"></div>

</body>
</html>

谢谢你的帮助。

4

1 回答 1

3

这是因为同源策略。这是大多数浏览器的安全功能。最常见的解决方法是使用 JSONP,但由于您期望 HTML 作为响应,这对您不起作用。

您需要使用的是服务器端代理,您可以在 PHP/ASP.Net/其他服务器端技术中发出请求以获取 URL 的 HTML,然后通过本地请求将其公开给您的 jQuery。

于 2012-05-28T10:32:06.293 回答