从前端发送普通http请求的方法有哪些?

时间:2017-12-19 07:11:34

标签: node.js rest http express httprequest

1)我不清楚从前端向服务器发送http requests的不同方法是什么以及有哪些方法?

2)对我来说唯一明显的事情是当我们在后端或者点击form时向路由处理程序提交button时,默认情况下它会重定向到另一个网页,它都是由普通的http请求完成的。

3)我想知道我们可以在后端发送http requests但是从前端发送吗?



const https = require("https");

const url =
  "https://maps.googleapis.com/maps/api/geocode/json?address=Florence";

https.get(url, res => {
  res.setEncoding("utf8");
  let body = "";
  res.on("data", data => {
    body += data;
  });
  res.on("end", () => {
    body = JSON.parse(body);
    console.log(
      `City: ${body.results[0].formatted_address} `
    );
  });
});




1 个答案:

答案 0 :(得分:2)

  1.   

    发送http请求的方式和方法是什么以及

  2. 在前端(客户端),您可以向服务器发出各种请求 例如:

    • 使用原生JS XMLHttpRequest。只需将here的默认示例更改为您的案例:

      python3
    • 使用ES6 fetch模块:

      • 使用承诺:

        function reqListener () {
         console.log(this.responseText);
        }
        
        var oReq = new XMLHttpRequest();
        oReq.addEventListener("load", reqListener);
        oReq.open("GET", "https://maps.googleapis.com/maps/api/geocode/json?address=Florence");
        oReq.send();
        
      • 使用async / await,我们将使用IIFE

        fetch('https://maps.googleapis.com/maps/api/geocode/json?address=Florence').then(res => console.log(res)).catch(e => console.log(e))`
        
    • 另一种选择:

      • jQuery请求:
        就像这样:(() => { const result = await fetch('https://maps.googleapis.com/maps/api/geocode/json?address=Florence'); console.log(result); })();
      

    关于第二个问题

    您始终向服务器发出$.get(url, function(response) { //...Handle response });等请求。因此,当您调用google的api或访问Stackowerflow页面时,您确实向服务器发出请求,它会为您提供答案。
    您可以阅读有关请求here的更多信息。

      

    3)我想知道我们可以在后端发送这样的http请求   但是从前端?

    最好使用JS(前端)解决方案在浏览器中使用,因为它们适用于这种情况。