跨源请求仅在firefox中被阻止! [选项:403禁止]

时间:2016-11-24 07:46:20

标签: amazon-web-services firefox http-headers cors options

它再次出现CORS问题。 [*我对CORS知之甚少]

我的环境:

我将json文件存储在Amazon S3服务器中,并从我的Web应用程序中读取此json文件。

我的问题:

我只在FireFox中获得此功能

  

阻止跨源请求:同源策略禁止读取   服务器上的远程资源。 (原因:CORS标题   'access-Control-Allow-Origin'缺失)

注意:我已经在服务器[Amazon S3]中配置了 CORSRule ,之后Chrome和其他浏览器正常运行。但是FireFox给出了这个错误。

在FireFox网络标签中[检查元素]:

状态:403

方法:选项

原因:xhr

输入:xml

请求标题:

Host: myWebApp.net
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0
Accept: text/plain, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
X-Requested-With: XMLHttpRequest
Referer: https://myWebApp.net/page.jsp
Connection: keep-alive

响应标题:

Content-Length: 0
Date: Thu, 24 Nov 2016 07:27:30 GMT
Location: https://webApp.s3.amazonaws.com/file.json
Server: Apache-Coyote/1.1

我环顾四周但没有找到任何原因。 所以我需要你的帮助。 由于它在Chrome浏览器中正常运行,因此仅在FireFox中出现问题。

请尽可能逐步描述[*我对这件事情不熟悉]

谢谢!

1 个答案:

答案 0 :(得分:0)

哎呀! 终于得到了解决方案。

  

问题发生在Amazon S3&#39> CORSConfiguration

我对此并不了解,但现在它允许来自所有浏览器的Cross-Origin。

我将 CORSConfiguration 更改为:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
 <CORSRule>
   <AllowedOrigin>https://myWebApp.net</AllowedOrigin>
   <AllowedMethod>GET</AllowedMethod>
   <AllowedMethod>POST</AllowedMethod>
   <AllowedMethod>PUT</AllowedMethod>
   <AllowedHeader>*</AllowedHeader>
  <MaxAgeSeconds>3000</MaxAgeSeconds>
  <ExposeHeader>x-amz-server-side-encryption</ExposeHeader>
  <ExposeHeader>x-amz-request-id</ExposeHeader>
  <ExposeHeader>x-amz-id-2</ExposeHeader>
 </CORSRule>
</CORSConfiguration>

根据此规则,浏览器会获得正确的 请求标头 响应标头

请求标题:

Host: myWebApp.s3.amazonaws.com
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Access-Control-Request-Method: GET
Access-Control-Request-Headers: x-requested-with
origin: https://myWebApp.net
Connection: keep-alive
Cache-Control: max-age=0

响应标题:

Access-Control-Allow-Headers: x-requested-with
Access-Control-Allow-Methods: GET, POST, PUT
Access-Control-Allow-Origin: https://myWebApp.net
Access-Control-Max-Age: 3000
Content-Length: 0
Date: Thu, 24 Nov 2016 13:21:17 GMT
Server: AmazonS3
Vary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method
access-control-allow-credentials: true
access-control-expose-headers: x-amz-server-side-encryption, x-amz-request-id, x-amz-id-2
x-amz-id-2: emYYMILNIdkCejpjuDXz4Haks87asdhj/7JL5AASt/8eIwKdgO1Gb/AzGRg7SU/GH55IVopScg=
x-amz-request-id: 307572CDFF39F443
相关问题