laravel5.2后端允许跨域配置

在大公司的项目里,常见使用前后端分离,可以实现高内聚低耦合的效果。但是由于浏览器的同源策略,不同地址(端口不同也算)之间的调用就会出现跨域问题。服务端允许跨域请求可以修改代码或者修改服务器配置。如果你的项目是laravel写的接口,可以参考:

1、创建中间键

php artisan make:middleware Cros

2、修改中间键代码

<?php

namespace App\Http\Middleware;

use Closure;

class Cors
{
    /**

     *

     * Handle an incoming request.

     *

     * @param  \Illuminate\Http\Request  $request

     * @param  \Closure  $next

     * @return mixed

     */

    public function handle($request, Closure $next)

    {

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

            header("Access-Control-Allow-Credentials: true");

            header("Access-Control-Allow-Methods: *");

            header("Access-Control-Allow-Headers: X-Requested-With,Content-Type,Access-Token");

            header("Access-Control-Expose-Headers: *");
        

        return $next($request);

    }
}

3、注册中间键

在 App\Http\Kernel 类的 $middleware 属性添加:

protected $middleware = [
        \App\Http\Middleware\Cors::class,
    ];

这个时候后端api已经允许跨域了,

使用js调用接口,查看response的header中是否有这些

Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: X-Requested-With,Content-Type,Access-Token
Access-Control-Allow-Methods: *
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: *

有时你会发现浏览器的network里多一次options请求,是由于浏览器要先判断该服务器是否允许该跨域请求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值