如何在 Yii2 中允许 CORS?

How to allow CORS in Yii2?

我有一个 JavaScript 前端向我的 PHP 后端请求纯文本。

除了因为我有 CORS 问题,它几乎可以正常工作。如何在我的 PHP 代码中允许 CORS?

我的前端(JavaScript 和 jQuery):

$.ajax({
    type: 'GET',
    url: 'http://localhost:8080/',
})
.done(function(data) {
    console.log(data);
})
.fail(function() {
    alert("Oh, no. CORS error again.");
});

我的后端(PHP 和 Yii2):

$result = file_get_contents('http://m2m.exemys.com/...'); // This URL is a bit larger with more parameters.
var_dump($result); // Plain text. Just some characters.

Yii2支持CORS处理,如official documentation.

上所写
public function behaviors()
{
    return [
        'corsFilter' => [
            'class' => \yii\filters\Cors::class,
        ],
    ];
}

或者,您可以尝试在 PHP 后端添加以下 headers:

<?php

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

如果不行,请看https://whosebug.com/a/9866124/11591212

检查这个。 Yii2 带有开箱即用的 cors 过滤器。阅读文档以了解用法:https://www.yiiframework.com/doc/api/2.0/yii-filters-cors