亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁 php框架 YII yii2怎么進行http請求處理

yii2怎么進行http請求處理

Nov 05, 2019 am 09:42 AM
yii2

yii2怎么進行http請求處理

VerbFilter

VerbFilter?是針對 HTTP 請求方式的過濾器,作用是定義訪問指定動作所允許的HTTP請求,若不允許的HTTP請求到來,則會拋出一個 HTTP 405 錯誤。若不指定允許的請求方式,則默認允許當所有類型的請求方式 。 ? ? ? ? (推薦學習:yii教程

接下來,試一試?VerbFilter?的簡單使用。

首先,在 SiteController 中添加代碼

public function actionInfo()
    {
        return \Yii::createObject([
            'class' => 'yii\web\Response',
            'format' => \yii\web\Response::FORMAT_JSON,
            'data' => [
                'message' => 'hello world',
                'code' => 100,
            ],
        ]);
    }

上述代碼,返回一個利用 FORMAT_JSON 格式化的字符串

使用URL:http://localhost/basic/web/index.php?r=site/info 訪問的時候,成功返回

{"message":"hello world","code":100}

接著,在 behaviors() 中添加代碼

public function behaviors()
    {
        return [
            ... ...
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    'logout' => ['post'],                   
                    'info' => ['post'],
                ],
            ],
        ];
    }

上述代碼,在 behaviors() 中使用了過濾器 VerbFilter ,指明訪問動作 info 時,只能使用 POST 請求方式

此時,使用RESTClient工具,選擇 GET 請求方式進行訪問的時候,返回 405 錯誤

再次修改代碼

public function behaviors()
    {
        return [
            ... ...
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    'logout' => ['post'],                   
                    'info' => ['post','get'],
                ],
            ],
        ];
    }

允許POST和GET兩種請求方式訪問動作Info,使用RESTClient工具訪問,選擇 GET 請求方式進行訪問的時候獲取到返回值

{"message":"hello world","code":100}

此時使用工具 RESTClient ,通過 post 發(fā)送請求,返回 405 錯誤。

這時候,修改 web.php 文件

'request' => [
            // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
            'cookieValidationKey' => '4mWc84oNsYJpc-nnnjMwyOOiCTgcThig',
            'enableCookieValidation' => false,
            'enableCsrfValidation' => false,
        ],

添加上這兩行代碼,警用cookie保護與CSRF防范策略

 'enableCookieValidation' => false,
 'enableCsrfValidation' => false,

再次通過 post 發(fā)送請求訪問,成功。

注:CSRF驗證

因為Web網(wǎng)頁訪問的時候,form表單中會有對應的一個隱藏input:_csrf進行驗證,驗證通過才可以正常進行訪問;

而非網(wǎng)頁訪問方式(不通過Web表單,例如用命令行CURL請求)是無法通過csrf驗證的。

以上是yii2怎么進行http請求處理的詳細內容。更多信息請關注PHP中文網(wǎng)其他相關文章!

本站聲明
本文內容由網(wǎng)友自發(fā)貢獻,版權歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權的內容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

Yii vs. Laravel:為您的項目選擇正確的PHP框架 Yii vs. Laravel:為您的項目選擇正確的PHP框架 Jul 02, 2025 am 12:26 AM

選擇Yii還是Laravel取決于項目需求和團隊專長。1)Yii適合高性能需求,結構輕量。2)Laravel提供豐富功能,開發(fā)者友好,適合復雜應用。兩者均可擴展,但Yii更易于模塊化,而Laravel社區(qū)資源更豐富。

如何在控制器中使用buforeaction()和afteraction()方法? 如何在控制器中使用buforeaction()和afteraction()方法? Jul 02, 2025 am 12:03 AM

beforeAction()在Yii2中用于在控制器動作執(zhí)行前運行邏輯,如權限檢查或請求修改,必須返回true或父類調用以繼續(xù)執(zhí)行;afterAction()則在動作執(zhí)行后、響應發(fā)送前運行,適用于輸出修改或日志記錄。1.beforeAction()在動作執(zhí)行前運行,可用于用戶權限驗證,例如重定向未登錄用戶至登錄頁,需返回parent::beforeAction($action)或true以繼續(xù)流程,否則阻止動作執(zhí)行;2.可通過檢查$action->id跳過特定動作的檢查;3.afterAc

什么是YII資產(chǎn)包,它們的目的是什么? 什么是YII資產(chǎn)包,它們的目的是什么? Jul 07, 2025 am 12:06 AM

YiiassetbundlesorganizeandmanagewebassetslikeCSS,JavaScript,andimagesinaYiiapplication.1.Theysimplifydependencymanagement,ensuringcorrectloadorder.2.Theypreventduplicateassetinclusion.3.Theyenableenvironment-specifichandlingsuchasminification.4.Theyp

Laravel MVC:真實代碼樣本 Laravel MVC:真實代碼樣本 Jul 03, 2025 am 12:35 AM

Laravel的MVC架構由模型、視圖和控制器組成,分別負責數(shù)據(jù)邏輯、用戶界面和請求處理。1)創(chuàng)建User模型定義數(shù)據(jù)結構和關系。2)UserController處理用戶請求,包括列出、顯示和創(chuàng)建用戶。3)視圖使用Blade模板展示用戶數(shù)據(jù)。該架構提升了代碼的清晰度和可維護性。

如何從控制器中呈現(xiàn)視圖? 如何從控制器中呈現(xiàn)視圖? Jul 07, 2025 am 12:09 AM

在MVC框架中控制器渲染視圖的機制基于命名約定并允許顯式覆蓋,若未明確指示重定向,則控制器會自動尋找與動作同名的視圖文件進行渲染。1.確保視圖文件存在且命名正確,如控制器PostsController的動作show對應的視圖路徑應為views/posts/show.html.erb或Views/Posts/Show.cshtml;2.使用顯式渲染可指定不同模板,如Rails中render'custom_template'、Laravel中view('posts.custom_template')

如何使用YII模型將數(shù)據(jù)保存到數(shù)據(jù)庫? 如何使用YII模型將數(shù)據(jù)保存到數(shù)據(jù)庫? Jul 05, 2025 am 12:36 AM

在Yii框架中保存數(shù)據(jù)到數(shù)據(jù)庫時,主要通過ActiveRecord模型實現(xiàn)。1.創(chuàng)建新記錄需實例化模型、加載數(shù)據(jù)并驗證后保存;2.更新記錄需先查詢已有數(shù)據(jù)再賦值保存;3.使用load()方法進行批量賦值時需在rules()中標記安全屬性;4.保存關聯(lián)數(shù)據(jù)時應使用事務確保一致性。具體步驟包括:實例化模型后用load()填充數(shù)據(jù),調用validate()驗證,最后執(zhí)行save()持久化;更新時則先獲取記錄再賦值;涉及敏感字段時要限制massassignment;保存關聯(lián)模型時應結合beginTran

如何在YII中創(chuàng)建基本路線? 如何在YII中創(chuàng)建基本路線? Jul 09, 2025 am 01:15 AM

TocreateabasicrouteinYii,firstsetupacontrollerbyplacingitinthecontrollersdirectorywithpropernamingandclassdefinitionextendingyii\web\Controller.1)Createanactionwithinthecontrollerbydefiningapublicmethodstartingwith"action".2)ConfigureURLstr

如何在YII控制器中創(chuàng)建自定義操作? 如何在YII控制器中創(chuàng)建自定義操作? Jul 12, 2025 am 12:35 AM

在Yii中創(chuàng)建自定義操作的方法是:在控制器中定義以action開頭的公共方法,可選地接受參數(shù);接著根據(jù)需要處理數(shù)據(jù)、渲染視圖或返回JSON;最后通過訪問控制確保安全。具體步驟包括:1.創(chuàng)建以action為前綴的方法;2.方法設為public;3.可接收URL參數(shù);4.處理數(shù)據(jù)如查詢模型、處理POST請求、重定向等;5.使用AccessControl或手動檢查權限來限制訪問。例如,actionProfile($id)可通過/site/profile?id=123訪問,并渲染用戶資料頁面。最佳實踐是

See all articles