Javascript CORS可以在chrome上工作,但不能在firefox、angularjs上工作

Javascript CORS可以在chrome上工作,但不能在firefox、angularjs上工作,javascript,angularjs,google-chrome,firefox,cors,Javascript,Angularjs,Google Chrome,Firefox,Cors,我正在尝试使用带有Jetty后端的angularJS 飞行前的CORS请求在chrome中运行良好,但在firefox中,我收到以下CORS错误: 已阻止跨源请求:同一源策略不允许读取位于的远程资源。这可以通过将资源移动到同一域或启用CORS来解决 选项请求的标题如下所示: HTTP/1.1 200 OK Date: Wed, 24 Sep 2014 16:06:12 GMT X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=bl

我正在尝试使用带有Jetty后端的angularJS

飞行前的CORS请求在chrome中运行良好,但在firefox中,我收到以下CORS错误: 已阻止跨源请求:同一源策略不允许读取位于的远程资源。这可以通过将资源移动到同一域或启用CORS来解决

选项请求的标题如下所示:

HTTP/1.1 200 OK
Date: Wed, 24 Sep 2014 16:06:12 GMT
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Frame-Options: DENY
Access-Control-Allow-Methods: GET, PUT, POST, OPTIONS, DELETE
Access-Control-Max-Age: 3600
Access-Control-Allow-Headers: Access-Control-Allow-Headers: Origin, Authorization, X-Requested-With, Content-Type, Accept
Access-Control-Allow-Credentials: true
Set-Cookie: JSESSIONID=eyv8cpnnfphy1b0121uzt293y;Path=/
Content-Length: 0
Server: Jetty(9.2.2.v20140723)
$http.get(AS_API_URL + '/provisioning/users/current-user', {
            headers: {
                'Authorization': 'Basic ' + base64EncodedAuth               
            }
        });
角度请求设置如下:

HTTP/1.1 200 OK
Date: Wed, 24 Sep 2014 16:06:12 GMT
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Frame-Options: DENY
Access-Control-Allow-Methods: GET, PUT, POST, OPTIONS, DELETE
Access-Control-Max-Age: 3600
Access-Control-Allow-Headers: Access-Control-Allow-Headers: Origin, Authorization, X-Requested-With, Content-Type, Accept
Access-Control-Allow-Credentials: true
Set-Cookie: JSESSIONID=eyv8cpnnfphy1b0121uzt293y;Path=/
Content-Length: 0
Server: Jetty(9.2.2.v20140723)
$http.get(AS_API_URL + '/provisioning/users/current-user', {
            headers: {
                'Authorization': 'Basic ' + base64EncodedAuth               
            }
        });
出于某种原因,这些标题在Chrome中可以正常工作,但在Firefox中却不行,有人知道为什么吗?我需要提供更多信息吗

编辑:

Musa关于访问控制允许标头格式错误的说法是正确的。 我编辑了Jetty服务器,因此标题现在为:

Access-Control-Allow-Headers: Origin, Authorization, X-Requested-With, Content-Type, Accept

我向你表示感谢,穆萨,你刚刚救了我一天:)

为了进一步说明穆萨在评论中的回答,Firefox正在阻止请求,因为以下标题的标题是两次而不是一次:

Access-Control-Allow-Headers: Access-Control-Allow-Headers: Origin, Authorization, X-Requested-With, Content-Type, Accept
应改为

Access-Control-Allow-Headers: Origin, Authorization, X-Requested-With, Content-Type, Accept

您的
Access Control Allow Headers
标题似乎格式不正确。是否查看安全证书/将域/网站添加到异常列表?相关问题:@Musa,将您的问题作为答案,以便OP能够接受。诺德峡湾,据我所知,CORS不会影响Get请求。@Owen,那不是真的。CORS影响对web服务器的任何和所有请求。web服务器必须返回“Access Control Allow Origin”,并将特定主机作为其值。使用*作为通配符接受任何主机。另一个标题是“Access Control Allow Headers”,其值为:“Origin,X-Requested-with,Content Type,Accept”。必须将CORS头添加到服务器端。我在上为Wildfly web服务器编写了一个Java类示例。浏览器应该不重要。