所请求的资源上没有“ Access-Control-Allow-Origin”标头。亚马逊S3

时间:2018-11-13 20:07:12

标签: reactjs amazon-s3 redux

我正在使用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的情况下获取资源。

1 个答案:

答案 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