0

我正在尝试从另一个后端(用 Node.js 编写)向我的 Kirby API 发出 api 请求,但我尝试的一切都只会导致 ECONNREFUSED。我究竟做错了什么?

const res = await fetch(`${apiUrl}/auth`, {
  headers: {
    'Authorization': `Basic ${Buffer.from(`${username}:${password}`).toString('base64')}`,
    'Content-Type': 'application/json'
  }
})

我尝试过 HTTP 和 HTTPS,我尝试过不同的端点,它们都给了我相同的结果。

相比之下,直接使用我的浏览器获取相同的 URL 会为我提供一个 JSON 响应,说明我未经授权(预期)。

为什么以编程方式发出请求时它不起作用?

我在我的 config.php 中有这个,但如果可以的话,我想删除那个 allowInsecure:

'api' => [
  'basicAuth' => true,
  'allowInsecure' => true,
],

有关如何解决此问题的任何想法?

柯比的新手,如果这是一个新手问题,请原谅。

这是我得到的具体错误:FetchError: request to http://localhost:8000/api/auth failed, reason: connect ECONNREFUSED 127.0.0.1:8000

4

1 回答 1

0

显然,解决方案是使用php -S 0.0.0.0:8000而不是 using来启动 Kirby php -S localhost:8000,然后通过http://0.0.0.0:8000/api而不是http://localhost:8000/api.

于 2021-06-09T01:52:08.410 回答