使用javascript($ ajax)从给定的URL获取html文件

时间:2017-07-29 16:54:43

标签: javascript jquery ajax

var $ = require('jquery');

$.ajax({
  type:"GET",
  dataType: 'html',
  url: 'http://www.google.com/',
  success: function(res){
    console.log(res);
  }
});

我在控制台中收到此错误:

XMLHttpRequest cannot load http://www.google.com/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

我该怎么做才能避免此错误?请帮忙。

4 个答案:

答案 0 :(得分:1)

您无法发送跨域请求,因为它是一个安全漏洞。

答案 1 :(得分:0)

因为google.com没有启用跨源请求。如果你尝试一个类似的网站:

$.ajax({
  type:"GET",
  dataType: 'html',
  url: 'https://cors-test.appspot.com/test',
  success: function(res){
    console.log(res);
  }
});

然后您将获得所需的结果

答案 2 :(得分:0)

我认为这是因为在获取另一个域时存在安全问题。 请检查这个 的 "No 'Access-Control-Allow-Origin' header is present on the requested resource"

答案 3 :(得分:0)

如果你控制后端,你可以将这个请求代理到后端,即使用PHP:

// get.php
echo file_get_contents($_GET['url']);

// frontend JS
$.ajax({
  type:"GET",
  dataType: 'html',
  url: '/get.php?url=http://www.google.com/',
  success: function(res){
    console.log(res);
  }
});

PHP将能够获取数据,因为它不会检查CORS。