简单的jQuery $ .get示例代码不起作用

时间:2012-09-29 18:51:33

标签: javascript jquery

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

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

$.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请求?

2 个答案:

答案 0 :(得分:5)

Same origin policy

  

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

答案 1 :(得分: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
        }