gpt4 book ai didi

javascript - PHP Access-Control-Allow-Origin header 不起作用

转载 作者:行者123 更新时间:2023-11-28 00:32:50 24 4
gpt4 key购买 nike

我正在编写一个 JavaScript 脚本,该脚本向另一台服务器(我自己的域)发出 AJAX 请求。 JavaScript 脚本使用插件添加到页面中。它应该从我的域上的 PHP 文件检索数据。

我已将以下 header 添加到 PHP 文件中:

<?php
header("Access-Control-Allow-Origin: *");

但是AJAX请求仍然抛出错误。将 * 更改为我计划使用它的实际域也不起作用。我在堆栈溢出中搜索了答案,并发现了以下内容:

// Allow from any origin
if (isset($_SERVER['HTTP_ORIGIN'])) {
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400'); // cache for 1 day
}

// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {

if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");

if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");

exit(0);
}

这也不起作用。

我认为我的 .htaccess 文件可能以某种方式影响了某些事情,所以我暂时删除了它,但 AJAX 请求仍然表示 PHP 文件中没有设置 Access-Control-Allow-Origin header 。

我在 daniweb.com 上找到了这个: https://www.daniweb.com/web-development/php/threads/461902/php-header-is-not-working-for-access-control-allow-origin这是悬而未决的。

如果 header 已经明确设置(以多种方式),为什么 AJAX 请求仍然抛出错误,指出 header 尚未设置?

最佳答案

通过 AJAX 请求发送的数据破坏了 PHP 脚本 - 导致它无法正确执行,我猜这会阻止正确设置 header 。

请所有将来查看此内容的人注意:我认为这就是您的内容可能无法正常工作的原因 - 并且很可能是我在撰写本文之前查看过的主题从未得到解答的原因。诚然,这确实是相当尴尬的事情。我想没有人愿意承认他们之前做了一些愚蠢的事情。

确保您在请求中发送的数据不会以某种方式导致 PHP 脚本无法执行。

关于javascript - PHP Access-Control-Allow-Origin header 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28811269/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com