【发布时间】:2021-11-21 08:08:20
【问题描述】:
我在 Apache 服务器上有一个非常简单的 PHP 文件,它必须响应 Ajax 请求。我正在尝试允许 CORS,但它不起作用(Firefox 控制台显示:原因:CORS 标头 'Access-Control-Allow-Origin' 缺失)。
我尝试了与 question 不同的解决方案,但它不起作用。我没有使用任何框架,只使用 Apache 服务器上的 index.php 文件。
这段代码是我找到的最简单的,但它不起作用(index.php):
<?php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Max-Age: 1000");
header("Access-Control-Allow-Headers: X-Requested-With, Content-Type, Origin, Cache-Control, Pragma, Authorization, Accept, Accept-Encoding");
header("Access-Control-Allow-Methods: PUT, POST, GET, OPTIONS, DELETE");
echo('CORS activated!!!');
?>
我的 HTML 文件:
$.ajax({
type: 'GET',
url: 'http://localhost/index.php',
})
.done(function(data) {
console.log('Do I have CORS?: ' + data);
})
.fail(function() {
alert("Error");
});
【问题讨论】:
-
没有明显的原因为什么这不起作用。您是否启用了正确的 PHP 错误报告?当您在浏览器开发工具、网络面板中检查请求时,您会看到什么?您在那里看到响应标头吗?响应正文是否包含任何错误消息?
-
这个脚本不能区分飞行前和响应......就像它的预设答案......只需将其更改为:
header("Access-Control-Allow-Origin: http://localhost");。案件结案。
标签: javascript php apache cors