Js axios error: import call expects exactly one argument

Js axios error: import call expects exactly one argument

我是初学者,我正在尝试做我的第一个从 API 获取数据的项目,但我 运行 出错了。 我正在尝试使用 axios 从 Riot API 获取数据,我遵循的教程没有 运行 出现此错误,我无法在任何地方找到解决方案。错误是: 语法错误:意外的标识符 'axios'。 import 调用只需要一个参数。

代码:

import axios from "axios";

const riot_key = "my-riot-key";

function searchForPlayer(summonerName) {
  const APICallString = `https://euw1.api.riotgames.com/lol/summoner/v4/summoners/by-name/${summonerName}?api_key=${riot_key}`;
  axios
    .get(APICallString)
    .then(function (response) {
      //SUCCESS
      console.log(response);
    })
    .catch(function (error) {
      //ERROR
      console.log(error);
    });
}

searchForPlayer(M4T789);

这对我来说可能只是一个愚蠢的错误,但我无法在任何地方找到它提前致谢。

这是 html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>League Summoner</title>
    <link rel="stylesheet" href="style.css">
    
</head>
<body>
    <h1>League of Legends Summoner</h1>
    <script src="script.js"></script>
</body>
</html>

通常我希望这会提供错误消息

Uncaught SyntaxError: Cannot use import statement outside a module

不清楚为什么您会收到不同的错误消息。可能您之前在代码中的某处定义了一个 import 函数,或者正在浏览器中进行测试,但我没有在其中看到此问题。

除此之外,您还有两个紧迫的问题。

您不能在模块外使用 import

您需要从 <script type="module">

加载您的 JS

你不能使用Node.js模块分辨率

浏览器无法搜索名为 axios 的模块,您必须提供 URL 而不是名称。


您正在学习的教程假设您使用的是典型的 React 开发环境和工具链,用于在构建步骤中捆绑 TypeScript and/or ES6 模块。

避免使用针对您不使用的平台的教程。你只会感到困惑。


考虑使用 CDN (as described in its documentation) 加载 Axios,而不是使用您不使用的包管理器。

考虑完全不使用 Axios。它是相当大的代码块,它的最大好处(提供一致的 promised-based API 以在两种浏览器和 Node.js 上发出 HTTP 请求)已经随着浏览器的发展而消失了, Node.js 原生支持 the Fetch API