XMLHttpRequest被CORS策略阻止,如何解决而无权访问更改标头

时间:2019-05-08 13:04:39

标签: javascript http server cors axios

如何修复对XMLHttpRequest at... from origin 'null' has been blocked by CORS policy: ... with NO access to the server side的访问权限。

我正在从事一个项目,其中一部分需要我从特定页面上获取一些信息。

现在,仅当我连接到工作场所的网络时,才能访问此URL。

以下是我用来抓取的代码:

  let axios = require('axios');
  let cheerio = require('cheerio');

  axios.get("---the url that I want---")
    .then((response) => {
        if(response.status === 200) {
          // sucsessfull call to get
          const html = response.data;
          const $ = cheerio.load(html);

          const jobTable = $('#tbl_JobInfo');
          const table = jobTable.find('table');
          console.log(table.text());

    }
    }, (error) => console.log(err) );

但是,使用此工具时,出现以下错误:

  

从原点“空”到“ ---我想要的URL-”的XMLHttpRequest的访问已被CORS策略阻止:在所请求的资源上没有“ Access-Control-Allow-Origin”标头。

我已经做了很多在线搜索,并且明白这是一个CORS问题,但是我无权访问服务器端的更改标头。

当我连接到工作场所的网络时,是否有任何方法可以解决此页面上的信息并获得访问权限?

谢谢

1 个答案:

答案 0 :(得分:1)

您可以创建代理服务器并将其放置在工作场所的网络上。然后,您的客户端将与此代理服务器进行通信,而不是直接与您要从中进行爬网的服务器进行通信。

代理服务器只是一个简单的Web服务器,它接受来自客户端的GET请求,从URL中获取HTML并将其发送回客户端。