【发布时间】:2021-02-24 09:34:16
【问题描述】:
我显然尝试从本地 nodejs 服务器获取数据,但出现了奇怪的错误。这是带有 express 的简单服务器
let express = require('express')
let server = express()
server.listen(3100)
server.get("/", (req, res) => {
res.send("hello") })
这是我反应中的代码。我只在useEffect中使用它
fetch('http://localhost:3100/', {
headers: 'Access-Control-Allow-Origin',
method: "GET"
})
.then(res => res.json())
.then(response => {
console.log(response)
})
.catch(err => console.log(err))
我得到了这个错误
Uncaught (in promise) TypeError: Failed to execute 'fetch' on 'Window': The provided value is not of type '(sequence<sequence<ByteString>> or record<ByteString, ByteString>)'
我不知道为什么会这样,我环顾互联网,但仍然没有得到解决方案。感谢您的任何建议!
【问题讨论】:
-
headers是一个对象,而且Access-Control-Allow-Origin应该由server方完成。headers: { 'Content-type': 'application/json', etc...} -
这确实是一个奇怪的错误,但有时节点调试很混乱,错误似乎无关紧要。相关错误可能与跨域有关,因为我假设您在不同的本地端口上运行“获取”应用程序并需要启用 cors。您需要添加 server.use(cors());到您的节点应用程序以启用跨域请求
-
@StavrosAngelis — 这是浏览器端错误,与 Node 无关。
-
是的,但如果服务器 API 不允许跨域请求,“获取”请求也会失败,因此也需要修复。
标签: javascript node.js reactjs express