Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript NodeJS中的跨源请求Cors_Javascript_Node.js_Reactjs_Request_Cors - Fatal编程技术网

Javascript NodeJS中的跨源请求Cors

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

我想获取我的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 = 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包,但它是相同的问题