Angular 5 / Apache / No' Access-Control-Allow-Origin'头

时间:2017-11-26 10:44:06

标签: apache .htaccess cors

我正在处理一个带有角5前面的apache2 / silex api。 我的获取请求没有问题,它工作正常,但是,我无法解决POST,PUT或DELETE请求的问题,我不断收到此错误=>

  

对预检请求的响应未通过访问控制检查:否   '访问控制允许来源'标题出现在请求的上   资源。起源' http://localhost:4200'因此是不允许的   访问。

我彻底搜查了,我想我确实理解了他们的概念,这里是我的.htaccess =>

DirectoryIndex bootstrap.php
<Limit GET POST PUT DELETE OPTIONS>
  Allow from all
</Limit>

Header set Access-Control-Allow-Origin "*"
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L,E=HTTP_ORIGIN:%{HTTP:ORIGIN}]]
#Header set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Credentials "true"
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, Accept-Encoding"
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"

当我在我的Chrome浏览器中查看我的请求标签时,我确实看到我的选项预检请求已经&#34; 200 OK&#34;状态代码和响应标头是那些=&gt;

Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:X-Requested-With, Content-Type, Origin, Authorization, Accept, Client-Security-Token, Accept-Encoding
Access-Control-Allow-Methods:POST, GET, OPTIONS, DELETE, PUT
Access-Control-Max-Age:1000
Connection:Keep-Alive
Content-Length:574
Content-Type:text/html; charset=iso-8859-1
Date:Sun, 26 Nov 2017 10:18:21 GMT
Keep-Alive:timeout=5, max=100
Server:Apache/2.4.25 (Debian)

然后我明白问题是&#34; Access-Control-Allow-Origin&#34;在选项预检的情况下,标题丢失了(虽然这个标题在这里有一个获取请求,...

所以我的问题是=&gt;是否可以使用.htaccess通过“访问控制 - 允许 - 来源”自动回复选项预检。标题和200状态,如果是这样如何?

非常感谢任何帮助:)

PS:英语不是我的母语,请原谅任何错误,......

1 个答案:

答案 0 :(得分:0)

通常,必须写下我的问题的简单事实确实有助于更好地分析情况,......

如前所述,我发现问题确实在于我的htaccess,它没有发送'Access-Control-Allow-Origin'标题,这是因为我在我的htaccess =&gt;中写了这个。

Header set Access-Control-Allow-Origin "*"

而不是=&gt;

Header always set Access-Control-Allow-Origin "*"

那都是^^

如果有人遇到与我相同的问题,我会回答这个问题,......

祝你有个美好的一天o /