https://api.aonesalons.com/dbsynch/webocitysalonpos/
当我从邮递员那里向上面提到的URL发送请求时,效果很好。
然而,当通过我的angular应用程序发送时,在演示中运行。aonesalons。通用域名格式,
我得到:
Failed to load https://api.aonesalons.com/dbsynch/webocitysalonpos/: The 'Access-Control-Allow-Origin' header contains multiple values '*, https://demo.aonesalons.com', but only one is allowed. Origin 'https://demo.aonesalons.com' is therefore not allowed access.
如果我直接击中
https://api.aonesalons.com/dbsynch/webocitysalonpos/in
浏览器,它可以工作。然而,当从demo上运行的angular应用程序访问相同的url时。aonesalons。com,它抛出多个CORS标头错误
在angular应用程序中或在浏览器中直接点击时,我看到此请求的响应为200,响应如下:
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:*
Access-Control-Allow-Origin:*
Access-Control-Allow-Origin:https://demo.aonesalons.com
Access-Control-Expose-Headers:Cache-Control, Content-Type, Server
Cache-Control:must-revalidate, max-age=172800
Connection:close
Content-Length:240
Content-Type:application/json
Date:Sun, 25 Feb 2018 05:02:27 GMT
Expires:Tue, 27 Feb 2018 05:02:27 GMT
Server:CouchDB/1.6.1 (Erlang OTP/R14B04)
当我遇到邮差时,
access-control-allow-headers â*
access-control-allow-origin â*
cache-control âmust-revalidate, max-age=172800
connection âclose
content-length â240
content-type âtext/plain; charset=utf-8
date âSun, 25 Feb 2018 05:11:50 GMT
expires âTue, 27 Feb 2018 05:11:50 GMT
server âCouchDB/1.6.1 (Erlang OTP/R14B04)
我的所有请求都通过apache服务器代理,该服务器具有
访问控制允许原点:*
但是
在提出*之前,我
#SetEnvIf Origin ^(https?://(?:.+\.)?aonesalons\.com(?::\d{1,5})?)$ CORS_ALLOW_ORIGIN=$1
#Header append Access-Control-Allow-Origin %{CORS_ALLOW_ORIGIN}e env=CORS_ALLOW_ORIGIN
现在
切换到之后
,所有响应标头都具有访问控制允许来源:
除了这个对couchdb的请求。我不知道它是从哪里挑选的。
下面是我的ssl。conf看起来像:
Header always set Access-Control-Allow-Headers "*"
Header always set Access-Control-Allow-Origin "*"
<VirtualHost *:443>
ServerName api.aonesalons.com
SSLEngine on
SSLCertificateFile /home/user/abc.crt
SSLCertificateKeyFile /home/user/bcf.key
ProxyPreserveHost On
ProxyRequests Off
ProxyPass /dbsynch http://0.0.0.0:5984/
ProxyPassReverse /dbsynch http://0.0.0.0:5984/
ProxyPass / http://localhost:9999/
ProxyPassReverse / http://localhost:9999/
</VirtualHost>