我已经用SLIM PHP框架创建了一个基本的RESTful服务,现在我正在try 将其连接起来,以便从一个Angular 访问该服务.js项目.我已经读到了Angular supports CORS的开箱即用,我所需要做的就是在我的.htaccess文件.

我已经这样做了,并且我的睡觉应用程序仍然在工作(错误的.htaccess没有出现500亿个内部服务器错误),但是当我try 从test-cors.org点开始测试它时,它抛出了一个错误.

Fired XHR event: loadstart
Fired XHR event: readystatechange
Fired XHR event: error

XHR status: 0
XHR status text: 
Fired XHR event: loadend

我的.htaccess文件如下所示

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ /index.php [QSA,L]
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"

我还有什么需要补充的吗.htaccess使其正常工作,还是有其他方法在我的服务器上启用CORS?

推荐答案

因为我把所有的东西都转发到了索引.无论如何,我想我应该try 用php来设置标题,而不是.htaccess文件成功了!耶!以下是我添加到索引中的内容.php为其他任何有此问题的人提供.

// Allow from any origin
if (isset($_SERVER['HTTP_ORIGIN'])) {
    // should do a check here to match $_SERVER['HTTP_ORIGIN'] to a
    // whitelist of safe domains
    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, PUT, DELETE, OPTIONS");         

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

}

他的答案是this question分,功劳归功于他的杀手锏

因为我使用的是Slim,所以我添加了此路由,以便OPTIONS请求获得HTTP 200响应

// return HTTP 200 for HTTP OPTIONS requests
$app->map('/:x+', function($x) {
    http_response_code(200);
})->via('OPTIONS');

Php相关问答推荐

在Woocommerce变量产品中的标签附近显示所选属性选项名称

在特定日期之间使用特定的元密钥销售产品

如何修复警告:当使用WordPress get_the_Terms()时,Foreach()参数必须是ARRAY|OBJECT类型?

如何显示每个分类的当前术语的帖子中包含的前20个标签,不包括标签分类

中继器内置中继器的ACF WordPress组

使用php创建表格和插入数据

如果为布尔值,则 for each 循环重新启动

限制某些产品只能在WooCommerce的特定邮政编码/邮政编码范围内发货

如何将WooCommerce产品从一个产品复制到另一个产品S

使用DOMPDF获取PDF格式的本 map 像

Mockery在模拟Redis连接时抛出错误:Mockery\Exception\BadMethodCallException

将自定义字段添加到管理产品 在 WooCommerce 3.2+ 中批量编辑

将可编辑的计费自定义字段添加到 WooCommerce 管理单个订单

如何处理 Null 上的 array_shift() ?

在 WooCommerce 管理变量产品中启用其他变体图像

由于 PHP 版本不受支持,如何终止 PHP 脚本?

我试图在我的视图上显示从数据库中获取的数据,但我无法显示它.拉维尔 10.x /

如何在 WooCommerce 中显示每个自定义选项卡的内容

Laravel Websockets 错误:(WebSocket 在建立连接之前关闭)

在 EasyAdmin 中添加全局操作,将我的按钮放在表格下方而不是上方