1

我正在尝试获取网页的输出,我发现 jQuery 有一种方法可以通过$.get 方法执行此操作。

从上面的链接中,我找到了以下示例代码:

$.get('ajax/test.html', function(data) {
  $('.result').html(data);
  alert('Load was performed.');
});

我将示例代码修改为以下内容:

$.get('http://www.google.com', function(data) {
  $('.result').html(data);
  alert('Load was performed.');
});

但它不起作用。在这里看到它:http: //jsfiddle.net/6WQqD/1/

我究竟做错了什么?如何发出一个简单的 HTTP 请求来输出页面的内容?

4

2 回答 2

5

同源政策

在计算中,同源策略是许多浏览器端编程语言(例如 JavaScript)的重要安全概念。该策略允许在源自同一站点的页面上运行的脚本无特定限制地访问彼此的方法和属性,但禁止跨不同站点的页面访问大多数方法和属性。

于 2012-09-29T18:53:40.433 回答
0

对于跨域请求,您可以使用以下方法之一:

1 JSONP 要求服务器部分支持jsonp(包含跨域请求的具体代码)。对于 GET 请求,请尝试在 ajax 设置中使用 dataType = jsonp:

$.ajax({
 url: "other-domain-url",
 type: 'GET',
 crossDomain: true,
 dataType: 'jsonp',
 jsonpCallback:'callback',
 cache: false
});

您应该指定在检索到响应后要执行的回调函数。响应将作为参数传递。

2在您网站的服务器部分使用透明代理。配置代理(例如 nginx)以将必要的本地请求重定向到其他域。所以在js中你将使用本地ajax:

$.ajax({
     url: "/local",
     type: 'GET'
}

在配置中你应该使用代理设置:

location /local {       
            proxy_pass http://other-domain-url
        }
于 2012-10-01T13:47:09.550 回答