Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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_Express_Cors - Fatal编程技术网

Javascript 使用NodeJs发布Cors,在本地进行表达和反应

Javascript 使用NodeJs发布Cors,在本地进行表达和反应,javascript,node.js,reactjs,express,cors,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 =

我正在构建一个小型应用程序,其中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
import React,{useState,useffect}来自“React”
从“axios”导入axios
常量联系人=()=>{
const[contacts,setContacts]=useState([])
useffect(()=>{
获取('localhost:3300/api/contacts/'))
。然后((响应)=>{
console.log(响应)
})
.catch((错误)=>console.log(错误))
}, [])
返回(
联系人列表
)
}
导出默认联系人
我仍然可以在控制台上看到:

我是不是遗漏了什么


提前感谢您…

将“http://”放在“localhost:3300…”前面。

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

server.use(cors())
server.options('*', cors());
好的,我终于换了

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


它可以工作…

将“http://”放在“localhost:3300…”前面,因为错误表明您需要使用一个允许的方案,即您需要在get()的url中使用方案前缀,如
http://
,如果您想启用所有CORS请求,则不需要星号,请参阅此处的第一个使用示例:这是正确答案。你错过了协议。localhost也只是127.0.0.1的掩码。因此,您的主机可能存在一些内部映射问题。但这一答案应该得到投票。
axios.get('http://127.0.0.1:3300/api/contacts/')