📜  UnhandledPromiseRejectionWarning: TypeError: Only absolute URLs are supported (1)

📅  最后修改于: 2023-12-03 14:48:10.773000             🧑  作者: Mango

UnhandledPromiseRejectionWarning: TypeError

如果您在开发过程中遇到了 UnhandledPromiseRejectionWarning: TypeError: Only absolute URLs are supported 类似的错误,这篇文章将会为您提供相关的解决方案。

错误原因

这个错误的原因是因为您使用了相对路径而不是绝对路径。只有绝对路径才能被正确解析。这通常发生在使用 fetch()Axios 等 API 构造请求时,当您传递相对URL时会引发这个错误。

解决方案

要解决这个错误,您需要将相对路径转换为绝对路径。有多种方法可以实现这个目的。

方法一:使用 URL 对象

最简单的方法是使用 URL 对象来解析相对路径。然后在请求中使用 URL 的属性。

const url = new URL('/path/to/resource', 'http://example.com');
const response = await fetch(url);
方法二:使用 resolve() 函数

您也可以使用 resolve() 函数来将相对路径解析为绝对路径。

const baseUrl = 'http://example.com';
const url = new URL('/path/to/resource', baseUrl).toString();
const response = await fetch(url);
方法三:使用绝对路径

最后一个方法是直接使用绝对路径而不是相对路径。

const url = 'http://example.com/path/to/resource';
const response = await fetch(url);
结论

UnhandledPromiseRejectionWarning: TypeError: Only absolute URLs are supported 错误通常发生在使用相对路径构造请求时,因为只有绝对路径才能被正确解析。我们可以使用 URL 对象、resolve() 函数或者直接使用绝对路径来解决这个问题。