关于.do过滤和.controller过滤的区别辨析

首先明确一点,.do和.controller分别是对后缀为do和controller的类的过滤设置。
具体来讲,.controller一般是用来过滤登录的,因为在过滤登录时过滤器会检测请求中是否包含token,因为token是存在session里的,如果有token一般说明他是一个会话期间内的,所以就是传一个请求然后去session里面查,如果查到有token,就让他正常通过,这就是为什么没有过滤.do;
而.controller为什么要过滤掉呢是因为controller是用在登录中的,登陆的时候没有token,因此就不能让他直接过去,只有当他登陆成功了,我们给他返回一个token之后然后登录时候的所有请求都是.do,这时候已经有token了,所以请求就能让他通过。
总的来说,.do和.controller主要是针对不同后缀的类进行过滤,其实甚至可以不用写.do和.controller,直接在后台判断一下,如果有token就让他通过没有接拦截,但是加了过滤器可以进行统一处理,如果有多个.do和.controller就可以不用挨个判定是否拦截了,直接按后缀字符来判定即可。

在 Laravel 框架中,`Controller` `ApiController` 都是用于处理用户请求的控制器。它们的主要区别在于,`ApiController` 通常用于处理 API 请求,而 `Controller` 则用于处理 Web 页面请求。 在 Laravel 中,跨域请求是指来自不同域名或端口的请求。为了防止跨域攻击,浏览器通常会阻止跨域请求。为了解决这个问题,我们需要在服务器端实现跨域访问控制。 在 Laravel 中,我们可以使用中间件或过滤器来实现跨域访问控制。 对于 `Controller`,我们可以在 `app/Http/Middleware/VerifyCsrfToken.php` 文件中添加以下代码来实现跨域访问控制: ```php public function handle($request, Closure $next) { $response = $next($request); $response->header('Access-Control-Allow-Origin', '*'); $response->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); $response->header('Access-Control-Allow-Headers', 'Content-Type, Authorization'); return $response; } ``` 对于 `ApiController`,我们可以在 `app/Http/Controllers/Api/ApiController.php` 文件中添加以下代码来实现跨域访问控制: ```php public function __construct() { header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: *'); header('Access-Control-Allow-Headers: *'); } ``` 需要注意的是,这种方式并不是最安全的跨域访问控制方式,因为它允许来自任何域名端口的请求。在实际开发中,我们应该根据具体情况来限制允许的域名端口,并且使用更安全的跨域访问控制方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值