Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在使用React时,如何将URL从浏览器发送到要刮取的服务器?_Javascript_Reactjs - Fatal编程技术网

Javascript 在使用React时,如何将URL从浏览器发送到要刮取的服务器?

Javascript 在使用React时,如何将URL从浏览器发送到要刮取的服务器?,javascript,reactjs,Javascript,Reactjs,为了避免在试图从浏览器内部进行刮取时出现CORS错误,我想在服务器内部放置一个刮取器。如何将浏览器中生成的URL发送到服务器,让服务器抓取并组织内容,然后将数据发送回服务器,最好是作为对象发送回服务器?如果您将Node.js作为服务器运行,请尝试 就像另一个使用JS/JS框架的网页/Web应用程序一样,与服务器通信的常用方法是使用AJAX。例如,我们可以使用Axios或HTML5 fetch API的fetch()方法 在React中,Axios是最常用的AJAX库之一。它是一个独立的库,专门用

为了避免在试图从浏览器内部进行刮取时出现CORS错误,我想在服务器内部放置一个刮取器。如何将浏览器中生成的URL发送到服务器,让服务器抓取并组织内容,然后将数据发送回服务器,最好是作为对象发送回服务器?

如果您将Node.js作为服务器运行,请尝试


就像另一个使用JS/JS框架的网页/Web应用程序一样,与服务器通信的常用方法是使用AJAX。例如,我们可以使用Axios或HTML5 fetch API的
fetch()
方法

在React中,Axios是最常用的AJAX库之一。它是一个独立的库,专门用于客户端的HTTP事务。使用Axios的示例:

axios.post('https://your-server.com/your-path', {
    'url': 'https://url-input-by-user.com'
  })
  .then(function (response) {
    console.log(response);
    //Do your action when success/get response from server
  })
  .catch(function (error) {
    console.log(error);
    //Error handling is here
  });
使用
fetch()
API的示例(必须为IE和Edge实现polyfill):



使用“浏览器推送数据”:


如果“报废”流程在相当长的时间内运行,则使用“浏览器推送数据”机制可能适合该流程。因为如果使用AJAX,当它花费的时间太长时,它往往会有“超时”。当使用“推送数据”机制时,它是客户端和服务器之间的一种异步通信。您可以研究有关使用“Websocket”“服务器发送事件”的更多信息。仅供参考:

您所说的“如何将浏览器中生成的URL发送到服务器”是什么意思。我看不出做这件事有什么反应的问题。也许你可以详细解释一下你的问题。我想根据用户的决定在网页上创建一个URL。当我有刮刀在浏览器中,它是拒绝的,因为没有CORS头。当scraper位于服务器上时,不需要标题,因此我希望将用户决定的URL发送到服务器,然后scraper可以使用它,并将其发送回网页,以便显示
axios.post('https://your-server.com/your-path', {
    'url': 'https://url-input-by-user.com'
  })
  .then(function (response) {
    console.log(response);
    //Do your action when success/get response from server
  })
  .catch(function (error) {
    console.log(error);
    //Error handling is here
  });
fetch( 'https://your-server.com/your-path', {
    method: "POST", // *GET, POST, PUT, DELETE, etc.
    mode: "cors", // no-cors, cors, *same-origin
    cache: "no-cache", // *default, no-cache, reload, force-cache, only-if-cached
    credentials: "same-origin", // include, *same-origin, omit
    headers: {
        "Content-Type": "application/x-www-form-urlencoded",
    },
    redirect: "follow", // manual, *follow, error
    referrer: "no-referrer", // no-referrer, *client
    body: { 'url': 'https://url-input-by-user.com' }, // body data type must match "Content-Type" header
    })
    .then(response => response.json()); // parses response to JSON