因为前端运行在另一个端口上,我有.htaccess文件用于开发(生产中没有CORS,不用担心):
Header add Access-Control-Allow-Origin *
Header add Access-Control-Allow-Headers *
Header add Access-Control-Allow-Methods *
我的应用多次执行相同的后端调用。有时候,在进行了三到四次之后(进行得很好),突然调用中缺少了CORS头文件(自然地,CORS启动了,前端没有得到任何响应)。
显然.htaccess文件有时会被忽略。
Apache-error log什么也没说。
知道是什么原因导致这个问题或者如何调试吗?
- FF 102.10.0esr
- 浏览器113.0
- Apache 2.4.56
1条答案
按热度按时间yhxst69z1#
这些标题将只设置在“成功”(即。2xx HTTP状态)响应,因为默认的“条件”(或 group 的头)是
onsuccess
。换句话说,上述内容与:(
onsuccess
是 * 可选 *,因为这是默认值。)然而,似乎您(错误地)提供了403 Forbidden响应,因此这些头没有被设置(您会看到一个CORS错误)。为了在2xx和非2xx响应上设置报头,您需要使用
always
条件。例如:这可能会有点混乱/混乱。
onsuccess
和always
(称为“条件”)实际上是两组分开的报头。您可以向两个组添加报头,如果您想要edit
(或merge
或unset
)现有报头,则需要知道报头最初在哪个组中设置/添加。参考文献: