Thinkphp5 跨域再请求问题求助

目前项目用的fastadmin,TP版本为5.0.24.
现在前端请求,遇到了跨域问题,不使用nginx转发,想从服务端代码上解决.
目前问题是前端请求,option请求完后,后续的前端请求不会再触发,网上的解决方法都是使用如下代码:

if ($\_SERVER\['REQUEST\_METHOD'\] \== 'OPTIONS') {  
    header("Access-Control-Max-Age", "1800");  
    header('Content-Type: text/html;charset=utf-8');  
    header('Access-Control-Allow-Origin:\*'); // \*代表允许任何网址请求  
    header('Access-Control-Allow-Methods:\*'); // 允许请求的类型  
    header('Access-Control-Request-Headers:\*'); // 允许请求的类型  
    header('Access-Control-Allow-Credentials: true'); // 设置是否允许发送 cookies  header('Access-Control-Allow-Headers: \*'); // 设置允许自定义请求头的字段  
  exit;  
}

我现在是放到了入口文件那,但是并不能起作用.
有个教程https://blog.csdn.net/marswil... 使用中间件拦截http请求,但是中间件是5.1版本才引入的.大佬们 怎么解决呢?谢谢了

阅读 142
评论 1月14日提问
    1 个回答

    给你一段我的处理方式。

        /**
         * Cors Options 跨域处理
         */
        public static function corsOptionsHandler()
        {
            if (request()->isOptions()) {
                header('Access-Control-Allow-Origin:*');
                header('Access-Control-Allow-Headers:Accept,Referer,Host,Keep-Alive,User-Agent,X-Requested-With,Cache-Control,Content-Type,Cookie,token');
                header('Access-Control-Allow-Credentials:true');
                header('Access-Control-Allow-Methods:GET,POST,OPTIONS');
                header('Access-Control-Max-Age:1728000');
                header('Content-Type:text/plain charset=UTF-8');
                header('Content-Length: 0', true);
                header('status: 204');
                header('HTTP/1.0 204 No Content');
            }else{
                header('Access-Control-Allow-Origin:*');
                header('Access-Control-Allow-Headers:Accept,Referer,Host,Keep-Alive,User-Agent,X-Requested-With,Cache-Control,Content-Type,Cookie,token');
                header('Access-Control-Allow-Credentials:true');
                header('Access-Control-Allow-Methods:GET,POST,OPTIONS');
            }
    
        }

    fastadmin也是TP5,我的也是TP5。把这段代码随便放个位置,在BasicApi的控制器中引入使用即可。需要跨域的接口统一继承BasicApi,更详细的代码逻辑可以看我自己使用的开发框架https://gitee.com/zkii_admin/...

    评论 赞赏 1月14日
      撰写回答

      登录后参与交流、获取后续更新提醒