加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.52wenzhou.com/)- 云专线、建站、虚拟专用网络、智能边缘云、设备管理!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

thinkphp如何完成跨域请求

发布时间:2023-09-20 11:01:11 所属栏目:PHP教程 来源:转载
导读:   这篇文章主要介绍“thinkphp怎么完成跨域请求”,在日常操作中,相信很多人在thinkphp怎么完成跨域请求问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望
  这篇文章主要介绍“thinkphp怎么完成跨域请求”,在日常操作中,相信很多人在thinkphp怎么完成跨域请求问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”thinkphp怎么完成跨域请求”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
 
  一、Header类
 
  在thinkphp框架中,可以使用Header类来对响应头进行设置,从而实现跨域请求的功能。具体的方法是在控制器方法中添加以下代码:
 
  header("Access-Control-Allow-Origin: *");
 
  header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
 
  其中,第一行代码表示允许所有来源的跨域请求,也可以设置为具体来源;第二行代码表示允许跨域请求携带的请求头信息。这样设置之后,就可以实现基本的跨域请求了。
 
  二、第三方库
 
  除了使用Header类进行跨域请求的设置之外,还可以使用第三方库来简化这个过程。下面以主流的CORS(Cross-Origin Resource Sharing)库cors拓展为例,来介绍如何使用第三方库实现跨域请求。
 
  安装cors拓展
 
  打开命令行窗口,执行以下命令:
 
  composer require topthink/think-cors
 
  配置cors拓展
 
  在项目的config文件夹下,创建一个cors.php文件,输入以下代码:
 
   ['*'],
 
      // 允许的请求头信息
 
      'allow_headers'     => 'Origin, X-Requested-With, Content-Type, Accept',
 
      // 允许的请求方法
 
      'allow_methods'     => 'GET, POST, PUT, DELETE, PATCH',
 
      // 是否允许发送cookie
 
      'allow_credentials' => true,
 
      // 跨域请求缓存时间
 
      'max_age'           => 3600,
 
  ];
 
  其中,$allow\_origin表示允许的请求域名,可以设置为具体的域名,也可以设置为通配符“*”;$allow\_headers表示允许的请求头信息,$allow\_methods表示允许的请求方法,$allow\_credentials表示是否允许发送cookie,$max\_age表示跨域请求缓存时间。
 
  修改配置文件
 
  在项目的config文件夹下,找到app.php文件,配置如下:
 
  return [
 
      // ...
 
      'middleware' => [
 
          // ...
 
          \think\middleware\Cors::class,
 
      ],
 
  ];
 
  调用cors拓展
 
  在需要跨域请求的控制器方法中,可以直接调用cors拓展中的方法,实现跨域请求的设置:
 
  use think\facade\Cors;
 
  public function index() {
 
      Cors::allowAllOrigin();
 
      return json(['code' => 200, 'msg' => 'success']);
 
  }
 

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章