thinkphp 跨域问题,缓存问题

thinkphp 跨域问题,缓存问题

thinkphp 跨域问题,缓存问题,全部配置相关



一、跨域问题

1.全局配置跨域

1.单应用项目中:直接再app下的middleware.php中返回数组中添加:
\think\middleware\AllowCrossDomain::class, 如下

<?php
// 这是系统自动生成的middleware定义文件
return [
    \think\middleware\AllowCrossDomain::class,
];

2.多应用项目中,再对应的应用项目下添加上面配置

2单个接口控制跨域,

在router(路由)配置,如下添加allowCrossDomain()方法

Route::get('hello/:name', 'index/hello')->allowCrossDomain();

二、缓存问题

缓存一般很少会全局统一时间的缓存,肯定是每个接口分开配置,所以这里暂时不研究全局配置

第一步.开启request_cache_key

首先必须再配置文件中开启缓存,否则无效,
首先必须再配置文件中开启缓存,否则无效
首先必须再配置文件中开启缓存,否则无效
在项目的配置文件夹config下面的route.php中,request_cache_key的值false改为true,代码如下(这个貌似全局配置,开了之后不管多应用还是单应用项目,都能生效):

'request_cache_key'     => true,

第二步,为需要的路由添加缓存时间

通过路由配置cache()方法,如下,其中参数为需要缓存的秒数

Route::get('api/a', 'api/a')->cache(36000);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于 ThinkPHP5 的跨域问题,你可以尝试以下几种解决方案: 1. 在应用配置中设置跨域请求头:在 `config` 目录下的 `app.php` 文件中,找到 `response` 配置项,将其中的 `'header' => []` 修改为以下内容: ```php 'header' => [ 'Access-Control-Allow-Origin' => '*', 'Access-Control-Allow-Methods' => 'GET, POST, PUT, DELETE, OPTIONS', 'Access-Control-Allow-Headers' => 'Origin, X-Requested-With, Content-Type, Accept', ], ``` 这样设置之后,所有来源的请求都将被允许访问。 2. 使用中间件处理跨域请求:可以自定义一个中间件来处理跨域请求。首先,在 `app/middleware` 目录下创建一个新的中间件文件,例如 `CorsMiddleware.php`,然后在该文件中编写处理跨域请求的逻辑,示例如下: ```php <?php namespace app\middleware; class CorsMiddleware { public function handle($request, \Closure $next) { header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS'); header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept'); return $next($request); } } ``` 最后,在 `app/middleware.php` 文件中注册该中间件: ```php <?php return [ ... app\middleware\CorsMiddleware::class, ]; ``` 这样设置之后,所有经过中间件的请求都将被添加跨域请求头。 3. 使用第三方库:你还可以使用第三方库来处理跨域问题,例如使用 `think-cors` 库。在 `composer.json` 文件中添加该库的依赖: ```json "require": { ... "topthink/think-cors": "^2.0" }, ``` 然后执行 `composer update` 命令安装更新依赖。接下来,在应用配置的 `middleware` 配置项中添加 Cors 中间件: ```php 'middleware' => [ ... \think\middleware\Cors::class ] ``` 以上是几种常见的解决 ThinkPHP5 跨域问题的方法,你可以根据具体情况选择适合你的方式来进行处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值