我正在处理一个带有角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:英语不是我的母语,请原谅任何错误,......
答案 0 :(得分:0)
通常,必须写下我的问题的简单事实确实有助于更好地分析情况,......
如前所述,我发现问题确实在于我的htaccess,它没有发送'Access-Control-Allow-Origin'标题,这是因为我在我的htaccess =&gt;中写了这个。
Header set Access-Control-Allow-Origin "*"
而不是=&gt;
Header always set Access-Control-Allow-Origin "*"
那都是^^
如果有人遇到与我相同的问题,我会回答这个问题,......
祝你有个美好的一天o /