這篇文章主要介紹“thinkphp怎么完成跨域請(qǐng)求”,在日常操作中,相信很多人在thinkphp怎么完成跨域請(qǐng)求問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”thinkphp怎么完成跨域請(qǐng)求”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
創(chuàng)新互聯(lián)自2013年創(chuàng)立以來(lái),是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元金華做網(wǎng)站,已為上家服務(wù),為金華各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
一、Header類
在thinkphp框架中,可以使用Header類來(lái)對(duì)響應(yīng)頭進(jìn)行設(shè)置,從而實(shí)現(xiàn)跨域請(qǐng)求的功能。具體的方法是在控制器方法中添加以下代碼:
header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
其中,第一行代碼表示允許所有來(lái)源的跨域請(qǐng)求,也可以設(shè)置為具體來(lái)源;第二行代碼表示允許跨域請(qǐng)求攜帶的請(qǐng)求頭信息。這樣設(shè)置之后,就可以實(shí)現(xiàn)基本的跨域請(qǐng)求了。
二、第三方庫(kù)
除了使用Header類進(jìn)行跨域請(qǐng)求的設(shè)置之外,還可以使用第三方庫(kù)來(lái)簡(jiǎn)化這個(gè)過(guò)程。下面以主流的CORS(Cross-Origin Resource Sharing)庫(kù)cors拓展為例,來(lái)介紹如何使用第三方庫(kù)實(shí)現(xiàn)跨域請(qǐng)求。
安裝cors拓展
打開(kāi)命令行窗口,執(zhí)行以下命令:
composer require topthink/think-cors
配置cors拓展
在項(xiàng)目的config文件夾下,創(chuàng)建一個(gè)cors.php文件,輸入以下代碼:
['*'], // 允許的請(qǐng)求頭信息 'allow_headers' => 'Origin, X-Requested-With, Content-Type, Accept', // 允許的請(qǐng)求方法 'allow_methods' => 'GET, POST, PUT, DELETE, PATCH', // 是否允許發(fā)送cookie 'allow_credentials' => true, // 跨域請(qǐng)求緩存時(shí)間 'max_age' => 3600, ];
其中,$allow\_origin表示允許的請(qǐng)求域名,可以設(shè)置為具體的域名,也可以設(shè)置為通配符“*”;$allow\_headers表示允許的請(qǐng)求頭信息,$allow\_methods表示允許的請(qǐng)求方法,$allow\_credentials表示是否允許發(fā)送cookie,$max\_age表示跨域請(qǐng)求緩存時(shí)間。
修改配置文件
在項(xiàng)目的config文件夾下,找到app.php文件,配置如下:
return [ // ... 'middleware' => [ // ... \think\middleware\Cors::class, ], ];
調(diào)用cors拓展
在需要跨域請(qǐng)求的控制器方法中,可以直接調(diào)用cors拓展中的方法,實(shí)現(xiàn)跨域請(qǐng)求的設(shè)置:
use think\facade\Cors; public function index() { Cors::allowAllOrigin(); return json(['code' => 200, 'msg' => 'success']); }
到此,關(guān)于“thinkphp怎么完成跨域請(qǐng)求”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!