相对 URL 不适用于节点中的 axios

Lev*_*Lev 5 javascript url http relative-path node.js

在我的节点服务器上,以下代码有效

axios.get('http://localhost:8080/myPath') // works
Run Code Online (Sandbox Code Playgroud)

但是相对路径不起作用

axios.get('/myPath') // doesn't work
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

消息:“连接ECONNREFUSED 127.0.0.1:80”端口:80

如何让相对 url 像在浏览器中一样工作?

相对路径应该访问端口 8080,而不是 80。

我在哪里设置我的节点服务器上?

小智 6

使用自定义配置创建一个新实例。像下面

var instance = axios.create({ baseURL: ' http://localhost:8080 ' });

instance.get('/myPath', { timeout: 5000 });

希望,这会起作用参考:https : //www.npmjs.com/package/axios


ADy*_*son 2

在这种情况下,您不能使用相对 URL,因为它没有任何东西可以相对 - 您正在服务器上运行的脚本中执行代码,而不是在浏览器中。它没有任何相对于“当前”URL 的概念。

您需要明确指定完整的域名和端口。如果这给您带来了问题(例如,因为您想将其部署到不同的主机而不更改代码),则必须以另一种方式将这些值注入到代码中(例如,通过从配置文件中读取,请参阅此处的文档)。

  • “不同端口上的东西”——它不在不同端口上。没有什么可以相对的。该代码未在浏览器中运行。 (2认同)