2017-02-20 145 views
0

相关问题CORS我开发使用的Magento 2其余apis.I一个跨平台的移动应用程序已经启用了CORS在我的Apache服务器。在Apache服务器

/etc/apache2/sites-available/000-default.conf

<VirtualHost *:80> 
     # The ServerName directive sets the request scheme, hostname and port that 
     # the server uses to identify itself. This is used when creating 
     # redirection URLs. In the context of virtual hosts, the ServerName 
     # specifies what hostname must appear in the request's Host: header to 
     # match this virtual host. For the default virtual host (this file) this 
     # value is not decisive as it is used as a last resort host regardless. 
     # However, you must set it for any further virtual host explicitly. 
     #ServerName www.example.com 

     ServerAdmin [email protected] 
     DocumentRoot /var/www/html 
     # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, 
     # error, crit, alert, emerg. 
     # It is also possible to configure the loglevel for particular 
     # modules, e.g. 
     #LogLevel info ssl:warn 

     ErrorLog ${APACHE_LOG_DIR}/error.log 
     CustomLog ${APACHE_LOG_DIR}/access.log combined 

     # For most configuration files from conf-available/, which are 
     # enabled or disabled at a global level, it is possible to 
     # include a line for only one particular virtual host. For example the 
     # following line enables the CGI configuration for this host only 
     # after it has been globally disabled with "a2disconf". 
     #Include conf-available/serve-cgi-bin.conf 
     # Always set these headers. 
     Header always set Access-Control-Allow-Origin "*" 
     Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT" 
     Header always set Access-Control-Max-Age "1000" 
     Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token" 

     # Added a rewrite to respond with a 200 SUCCESS on every OPTIONS request. 
     RewriteEngine On 
     RewriteCond %{REQUEST_METHOD} OPTIONS 
     RewriteRule ^(.*)$ $1 [R=200,L] 
</VirtualHost> 

当我打电话从我browser.I API的我得到了成功响应。

enter image description here

但相关的问题我的控制台显示CORS。

enter image description here

请帮我在这?

回答

1

从您的000-default.conf中删除Header always set Access-Control-Allow-Origin "*",并删除Header always set Access-Control-Allow-Headers

这些导致多个Access-Control-Allow-Origin & Access-Control-Allow-Headers标题将在响应中发送。 (见devtools图像响应头一部分。当浏览器的多个响应头具有相同的名称,它们融合头的值。)

所以,无论如何,在服务器环境中的其他部分已经被设置这些标题。你或者需要禁用任何其他的添加,或者你只需​​添加任何其他必要的头文件还没有被添加。

例如,响应中只有一个Access-Control-Allow-Headers,并且只有一个Access-Control-Max-Age,所以推测您的Apache配置是添加这些配置的唯一方法。

+0

删除了这些lines.Then我得到的回应“服务器遇到一个内部错误或配置错误,无法完成您的请求。 ” – Muhsin

+0

然后好像你可能无意中介绍了一些其他的语法错误时,你所做的更改 - 因为只是删除这些指令不会导致您遇到该错误。 – sideshowbarker