axios CORS错误-我已经设置了标题,但我一直得到相同的错误

hc8w905p  于 2023-10-18  发布在  iOS
关注(0)|答案(1)|浏览(145)

我在Node.js中有一个API- TypeScript使用cors:

import cors from 'cors';

const options: cors.CorsOptions = {
  origin: 'http://localhost:3000',
  methods: 'GET,HEAD,OPTIONS,PUT,PATCH,POST,DELETE',
  allowedHeaders: [
    'Origin',
    'X-Requested-With',
    'Content-Type',
    'Accept',
    'X-Access-Token',
    'access-control-allow-origin',
  ],
  credentials: true,
  preflightContinue: false,
};

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

还有一个使用axios的react应用:

import { useState } from 'react'
import axios from 'axios'
import './Login.css'

const Login = () => {
    const [ email, setEmail] = useState('');
    const [ password, setPassword] = useState('');

    const handleLogin = async () => {
        if(email !== '' && password !== ''){
            await axios.post('http://localhost:3003/allProducts', {Id: 1}).then((result) => {
                console.log(result)
            })
        }
    }

    return (
        <div className='login'>
            <h1>Login</h1>
            <form>
                <input type="email" placeholder='Email' onChange={(e) => setEmail(e.target.value)}/>
                <input type="password" placeholder='Password' onChange={(e) => setPassword(e.target.value)}/>
                <button type='button' onClick={handleLogin}>Login</button>
            </form>
            <p>Don't have an account yet?<span>Sign in.</span></p>
        </div>
    )
}

export default Login

如果我在API上设置了标头,并且在互联网上尝试了一百万种方法,但我一直收到相同的错误,为什么我会收到这个CORS错误
enter image description here

7gcisfzg

7gcisfzg1#

注意:请记住,在production应用程序上禁用CORS并不安全。

尝试更新CORS options,因为您可能会忽略一些允许的头。

import cors from 'cors';

const options: cors.CorsOptions = {
  origin: 'http://localhost:3000',
  methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
  preflightContinue: false,
  optionsSuccessStatus: 204,
};

app.use(cors(options));

此外,Node.js应用程序中的整个cors使用可以通过不传递options对象(如果您当前仅在开发中测试)并回退到default设置来简化,这将启用所有origins的内容。

import cors from 'cors';

app.use(cors());

相关问题