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