【问题标题】:What is the best way to send a GET request to the server in vanilla JavaScript?在 vanilla JavaScript 中向服务器发送 GET 请求的最佳方式是什么?
【发布时间】:2020-02-17 16:06:56
【问题描述】:

用原生 JavaScript 向服务器发送 GET 请求的最佳方式是什么?

【问题讨论】:

  • 当你说vanilla JS时,你的意思是不使用任何包?
  • 这能回答你的问题吗? HTTP GET request in JavaScript?
  • 这和python-requests有什么关系?浏览器 js 和您也使用的 node.js 标签也有很大不同。另外,您对“最佳方式”使用什么标准?

标签: javascript node.js get


【解决方案1】:

在原版 javascript 中,您可以使用 the fetch API

fetch('http://example.com/movies.json')
  .then((response) => {
    return response.json();
  })
  .then((myJson) => {
    console.log(myJson);
  });

【讨论】:

  • 或更简单地说(await fetch('http://example.com/movies.json')).json()
【解决方案2】:

你可以做一个重定向来做一个同步的 GET 请求:

var url = 'http://domain/path/?var1=&var2=';

window.location = url;

【讨论】:

    【解决方案3】:

    使用XMLHttpRequest (XHR) 对象。

    代码示例:

    const http = new XMLHttpRequest();
    const url='/test';
    http.open("GET", url);
    http.send();
    
    http.onreadystatechange = (e) => {
      console.log('done')
    }
    

    【讨论】:

    • 虽然这是正确的,但原始 XHR API 已过时。更优雅并且开箱即用地支持 Promises 的现代方式是使用 fetch。
    【解决方案4】:
        var xmlHttp = new XMLHttpRequest();
        xmlHttp.open( "GET", THE_URL, false ); // false for synchronous request
        xmlHttp.send( null );
        return xmlHttp.responseText;
    

    【讨论】:

    • 虽然这是正确的,但原始 XHR API 已过时。更优雅并且开箱即用地支持 Promises 的现代方式是使用 fetch。
    【解决方案5】:

    你可以试试 Fetch

    function request() {
                fetch('http://example.com/movies.json')
                    .then(function(response) {
                        console.log(response.json())
                    })
                    .then(function(myJson) {
                        console.log(myJson);
                    });
            }
    
            request()

    【讨论】:

      【解决方案6】:

      我不确定我们是否可以在这里声明“最佳方式”, 但你可以使用

      XMLHttpRequest

      或者如果你想使用库

      Axios

      【讨论】:

        【解决方案7】:

        如果你安装了 PHP,你可以使用 get_file_content 变量

         <html>
        <script>
        var date= "<?php 
        echo(file_get_contents('https://apizmanim.com/twilio/zipapi.php?11211?2021/05/14')?>";
        document.write(date);
        </script>
        </html>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-11-15
          • 1970-01-01
          • 1970-01-01
          • 2023-04-05
          • 2010-10-13
          • 1970-01-01
          • 2013-06-01
          • 2017-01-28
          相关资源
          最近更新 更多