关于fetch的疑惑

我这边在本地起了简单的http服务之后尝试了一下发送请求到localhost

let res = await fetch('http://localhost:8000')
console.info(res)

结果都是:

Response {
  _bodySource: ReadableStream { locked: false },
  _stream: null,
  url: "http://localhost:8000/",
  statusText: "Gateway Timeout",
  status: 504,
  headers: Headers { ..., connection: close },
  redirected: false,
  type: "default"
}

当前已经试过: 1 python

python -m SimpleHTTPServer

2 java 手动建立tcp socket

3 koa

4 Deno 的示例

import { serve } from "https://deno.land/std@0.62.0/http/server.ts";
const s = serve({ port: 8000 });
console.log("http://localhost:8000/");
for await (const req of s) {
  req.respond({ body: "Hello World\n" });
}

全都是一样的效果. 想问一下大家有相同的情况吗. 还是我这边自己的问题.

ps:

  • fetch公网的url基本上都是ok的
  • 浏览器访问自己起的服务也是ok的 就有点迷

可以去看看fetch的API,fetch得到的res不是这样用的。比如你需要res.json()

都一样,

res 通的话自然是直接用res.text()和res.json(),这里504之后res.text()的话也只是得到504 timeout对应的html页面文本.

你如果试着用第4个那个Deno的demo起服务的话,fetch localhost:8000 得到的是正常的吗,还是和我一样是504

DONE

好像是公司内网ip的问题。 唉