2017-05-12 121 views
2

我通过axios请求s3服务器,并且我得到Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.此外,我得到了OPTIONS https://s3.ap-northeast-2.amazonaws.com/.../... 403 (Forbidden)错误:对预检请求的响应未通过访问控制检查:请求的资源上没有“Access-Control-Allow-Origin”标头

我应该在客户端解决这个问题。我在我的本地机器上托管我的文件。 我的请求代码如下。

axios({ 
    url: 'https://s3.ap-northeast-2.amazonaws.com/.../...', 
    method: 'get', 
    withCredentials: true, 
    headers: { 
    'Content-Type': 'image/jpeg', 
    'Access-Control-Allow-Origin': 'http://*, https://*', 
    } 

})

我试图

  1. start chrome --disable-web-security使用Git
  2. 安装了Chrome插件 - 允许-控制允许来源:*

毫无效果.. 。 我怎么解决这个问题?

+1

您必须在'的https配置服务器:// s3.ap-northeast-2.amazonaws.com/...'发送访问控制允许来源头。你有权访问该服务器来做到这一点?如果不是,那么您需要通过代理进行请求。有关详细信息,请参阅https://stackoverflow.com/questions/20035101/no-access-control-allow-origin-header-is-present-on-the-requested-resource/42744707#42744707上的答案。做*启动chrome --disable-web-security *或安装插件不是解决问题的办法,因为所有这些都可以让你独自在本地解决它。它不会为您的应用的用户修复它。 – sideshowbarker

回答

2

Access-Control-Allow-Origin响应头,而不是一个请求。您无法在本地修复此问题,因为这是另一端的问题。

您需要在您试图访问的S3存储桶上启用并配置CORS(跨源资源共享)。

http://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html

相关问题