laravel接口 js跨域登录带上cookies

15 篇文章 0 订阅
2 篇文章 0 订阅

问题:前后端分离,需要跨域请求,并且后端需要验证登录session。在axios中使用axios.defaults.withCredentials = true,每次session都会变。

laravel跨域解决方案:https://blog.csdn.net/u013091013/article/details/89879656

由于后端每次请求都要验证session,axios中使用axios.defaults.withCredentials = true时,response中的header不能设为Access-Control-Allow-Origin:*,这个时候后端就需要指定域名允许跨域。将Access-Control-Allow-Origin:*中的*改成你js所在服务器地址即可。

如果你想后端允许多域名跨域,可以将laravel中Cors改成这样

<?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)

    {

        $origin = $request->server('HTTP_ORIGIN') ? $request->server('HTTP_ORIGIN') : '';
        $allow_origin = [
            'http://localhost:8080','http://localhost:8081',
        ];
        if (in_array($origin, $allow_origin)) {
            header('Access-Control-Allow-Origin: '.$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);

    }
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值