Javascript NodeJS中的跨源请求Cors
我想获取我的NodeJS服务器,但我收到一个跨源请求echec 这是我的index.js服务器:Javascript NodeJS中的跨源请求Cors,javascript,node.js,reactjs,request,cors,Javascript,Node.js,Reactjs,Request,Cors,我想获取我的NodeJS服务器,但我收到一个跨源请求echec 这是我的index.js服务器: const express = require('express') if (process.env.NODE_ENV !== 'production') require('dotenv').config() const routerIdeas = require('./routes/ideas') const PORT = process.env.PORT || 5000 const app
const express = require('express')
if (process.env.NODE_ENV !== 'production') require('dotenv').config()
const routerIdeas = require('./routes/ideas')
const PORT = process.env.PORT || 5000
const app = express()
app.use(function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*")
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept")
res.send(200)
next()
})
app.use('/api', routerIdeas)
app.listen(PORT, () => {
console.log(`Server is running on port : ${PORT}`)
})
我也尝试过npm CORS软件包,但问题是一样的:
const express = require('express')
var cors = require('cors')
if (process.env.NODE_ENV !== 'production') require('dotenv').config()
const routerIdeas = require('./routes/ideas')
const PORT = process.env.PORT || 5000
const app = express()
app.use(cors())
app.use('/api', routerIdeas)
app.listen(PORT, () => {
console.log(`Server is running on port : ${PORT}`)
})
这是我通过React应用程序获取的信息:
useEffect(() => {
const getIdeas = async () => {
setIsLoading(true)
try {
const response = await fetch("https://localhost:3004/api/ideas")
const data = await response.json()
setIdeasArray(data)
setIsLoading(false)
} catch (err) {
console.error('getIdeas error: ', err, err.stack)
}
}
getIdeas()
}, [])
浏览器的控制台始终回答:
阻止跨源请求:“同一源”策略不允许查看位于的远程资源https://localhost:3004/api/ideas. 原因:CORS请求失败。为什么不使用CORS节点包()对不起,这只是一个愚蠢的错误: 错误的获取URL=>https://localhost:3004/api/ideas
好的获取URL=>http://localhost:3004/api/ideas前面的问题和答案很好地涵盖了整个区域,您是否进行了彻底的搜索和阅读?您得到的确切错误是什么?您确定没有发送其他标题吗?您是否响应选项请求以及GET?我也尝试了npm CORS包,但它是相同的问题