.htaccess PHP 5.3 选项破坏了 Access-Control-Allow-Origin 选项?

发布于 2024-12-11 03:54:17 字数 744 浏览 0 评论 0原文

首先我要说的是,我正在与 HostGator 共享的 Linux 服务器上运行。

我的问题是我的 .htaccess 中有这行代码:

Header set Access-Control-Allow-Origin *

它允许跨域 xhr 请求。它一直在工作,直到我的托管提供商告诉我添加此内容以获取 php 5.3(我的程序需要):

# Use PHP 5.3
Action application/x-hg-php53 /cgi-sys/php53
AddHandler application/x-hg-php53 .php

现在我无法再发出跨域 xhr 请求。有谁知道为什么这不再有效? (不过我确实得到了 PHP 5.3)

** 更新 **

好吧,看起来这不是我的错,也是我无法修复的。以下是 HostGator 技术支持的官方回应:

我已经检查了您的网站、错误日志和 .htaccess 指令, 不幸的是我得出的结论是“标题集 Access-Control-Allow-Origin *" 行与我们的不兼容 PHP 5.3 的实现在我们的共享服务器中找到。我真诚地 对于由此造成的不便,我们深表歉意,但我们的方式 实现并调用 PHP 5.3(因为 5.2 是默认值,不能 由于 cPanel 的改变)显然覆盖了标头处理 机制,使其无法正常工作。

Let me first say that I am running on a shared linux server with HostGator.

My problem is I had this line of code in my .htaccess:

Header set Access-Control-Allow-Origin *

Which allowed cross-domain xhr requests. It was working find till my hosting provider told me to add this to get php 5.3 (which my program requires):

# Use PHP 5.3
Action application/x-hg-php53 /cgi-sys/php53
AddHandler application/x-hg-php53 .php

Now I can no longer make cross-domain xhr requests. Does anyone know why this no longer works? (I do get PHP 5.3 though)

** Update **

Well, it looks like it's something that's not my fault and something I can't fix. Here's the official response from HostGator Tech Support:

I've examined your site, the error logs, and the .htaccess directives,
and unfortunately I've come to the conclusion that the "Header set
Access-Control-Allow-Origin *" line is not compatible with our
implementation of PHP 5.3 as found in our shared servers. I sincerely
apologize for the inconvenience that this causes, but the way we
implement and call PHP 5.3 (since 5.2 is the default and cannot be
altered thanks to cPanel) apparently overrides the Header handling
mechanism, making it not work correctly.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空名 2024-12-18 03:54:17

应该一起工作,但是,如果您想提供一个显式设置该标头的端点,您也可以使用 PHP 来实现:

header('Access-Control-Allow-Origin: *');

在任何输出开始之前将其放入您的 PHP 代码中。请参阅标题

It should work both together, however, if you want to provide an endpoint with that header explicitly set, you can do it with PHP as well:

header('Access-Control-Allow-Origin: *');

Put it into your PHP code before any output starts. See header.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文