网站建设资讯

NEWS

网站建设资讯

thinkphp怎么完成跨域请求

这篇文章主要介绍“thinkphp怎么完成跨域请求”,在日常操作中,相信很多人在thinkphp怎么完成跨域请求问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”thinkphp怎么完成跨域请求”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创新互联自2013年创立以来,是专业互联网技术服务公司,拥有项目成都网站设计、网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元金华做网站,已为上家服务,为金华各地企业和个人服务,联系电话:13518219792

一、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拓展为例,来介绍如何使用第三方库实现跨域请求。

  1. 安装cors拓展

打开命令行窗口,执行以下命令:

composer require topthink/think-cors
  1. 配置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表示跨域请求缓存时间。

  1. 修改配置文件

在项目的config文件夹下,找到app.php文件,配置如下:

return [
    // ...
    'middleware' => [
        // ...
        \think\middleware\Cors::class,
    ],
];
  1. 调用cors拓展

在需要跨域请求的控制器方法中,可以直接调用cors拓展中的方法,实现跨域请求的设置:

use think\facade\Cors;

public function index() {
    Cors::allowAllOrigin();
    return json(['code' => 200, 'msg' => 'success']);
}

到此,关于“thinkphp怎么完成跨域请求”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


分享文章:thinkphp怎么完成跨域请求
文章来源:http://njwzjz.com/article/jpsicd.html