我正在使用react-s3将一些基本文件上传到amazin s3。
代码:
export const addMovie = (values, history) => async dispatch => {
await ReactS3.uploadFile(values.poster, config).then(data => {
console.log(data);
}).catch(err => {
alert(err);
})
const res = await axios.post('/admin/movie', values);
history.push('/admin/movies');
dispatch({ type: "HANDLE_NEW", payload: res.data })
};
但我不断收到此错误:
无法加载 url :响应 预检请求未通过访问控制检查:否 请求中存在“ Access-Control-Allow-Origin”标头 资源。因此,不允许原点“ http://localhost:3000” 访问。如果不透明的响应满足您的需求,请设置请求的 模式设置为“ no-cors”,以在禁用CORS的情况下获取资源。
答案 0 :(得分:2)
需要在https://medium.com/@pongsakornsemsuwan/aws-s3-upload-with-react-dropzone-s3-uploader-a76021fe385处添加给定的CORS标头
您将需要遵循此https://docs.aws.amazon.com/AmazonS3/latest/dev/cors-troubleshooting.html
如果您访问的不是网站当前域名中的内容,则在任何地方都需要cors标头。
例如,在这种情况下,从本地主机域名尝试访问* .amazonaws.com,即使您使用任何其他服务,也需要在其上启用cors。
有关CORS的更多信息: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS