我在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
1条答案
按热度按时间7gcisfzg1#
注意:请记住,在
production
应用程序上禁用CORS
并不安全。尝试更新CORS
options
,因为您可能会忽略一些允许的头。此外,
Node.js
应用程序中的整个cors
使用可以通过不传递options
对象(如果您当前仅在开发中测试)并回退到default
设置来简化,这将启用所有origins
的内容。