TP5中解决跨域的一种方案
- 在
application->tags.php
文件中添加如下代码:
'app_init' => [
'app\\api\\behavior\\CORS'
],
-
新建文件
application->api->behavior->CORS.php
<?php
namespace app\api\behavior;
use think\Response;
class CORS
{
public function appInit(&$params)
{
header('Access-Control-Allow-Origin:带协议的域名');
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Headers: token,Origin, X-Requested-With, Content-Type, Accept");
header('Access-Control-Allow-Methods: POST,GET');
if (request()->isOptions()) {
exit();
}
}
}
补充:
怎么允许多域名呢
只需要在上面的appInit方法中加入下面的代码即可
$allow_origin = [
'http://localhost:8081',
'http://localhost:8080',
];
$origin = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : '';
if(in_array($origin,$allow_origin)){
header('Access-Control-Allow-Origin:'.$origin);
}
解决方案是次要的,重要的还是要看报错,通过报错去解决