在本地使用NodeJ,Express和React的Cors问题

时间:2019-11-25 16:52:07

标签: javascript node.js reactjs express cors

我正在使用NodeJs和Express构建后端的小型应用程序,并在客户端构建React。

为避免CORS政策问题,我使用了“ cors” npm软件包,但不能在客户端解决我的问题。...

快递:

const express = require('express')
const routes = require('../routes')
const bodyParser = require('body-parser')
const cors = require('cors')

const server = express()

server.use(bodyParser.urlencoded({ extended: true }))
server.use(express.json())
server.use(cors())
server.use('/api', routes)

module.exports = server

客户端:

import React, {useState, useEffect} from 'react'
import axios from 'axios'

const Contacts = () => {
    const [contacts, setContacts] = useState([])

    useEffect(() => {
        axios.get('localhost:3300/api/contacts/')
        .then((response) => {
            console.log(response)
        })
        .catch((error) => console.log(error))
    }, [])

    return (
        <div className="container">
            <h1>Contacts list</h1>
        </div>
    )
}

export default Contacts

而且我仍然可以在控制台上得到它:

enter image description here

我在这里想念什么吗?

先谢谢您...

3 个答案:

答案 0 :(得分:1)

将'http://'放在'localhost:3300 ...'前面

答案 1 :(得分:1)

您需要修复服务器端代码以允许跨域请求

server.use(cors())
server.options('*', cors());

答案 2 :(得分:0)

好吧,我最终取代

axios.get('localhost:3300/api/contacts/')

通过

axios.get('http://127.0.0.1:3300/api/contacts/')

它有效...