国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

ThinkPHP 3.2.3 的一個 Bug 和一個錯誤的設計

Dogee / 2059人閱讀

摘要:于是為了使這個生效,只能將這個配置改成之外的任意字符串。。。然后在創建文件再創建文件我的目的是內調用的時候,響應的狀態碼變成。其實這也算另一個吧,然道不應該響應一個錯誤的狀態碼但是沒辦法,鑒于團隊的平均水平,用開發仍然是最佳選擇。

ThinkPHP 3.2.3 的 ajax_rerurn 這個 Hook 是有邏輯錯誤的……
源代碼在這里:

    protected function ajaxReturn($data,$type="",$json_option=0) {
        if(empty($type)) $type  =   C("DEFAULT_AJAX_RETURN");
        switch (strtoupper($type)){
            case "JSON" :
                // 返回JSON數據格式到客戶端 包含狀態信息
                header("Content-Type:application/json; charset=utf-8");
                exit(json_encode($data,$json_option));
            case "XML"  :
                // 返回xml格式數據
                header("Content-Type:text/xml; charset=utf-8");
                exit(xml_encode($data));
            case "JSONP":
                // 返回JSON數據格式到客戶端 包含狀態信息
                header("Content-Type:application/json; charset=utf-8");
                $handler  =   isset($_GET[C("VAR_JSONP_HANDLER")]) ? $_GET[C("VAR_JSONP_HANDLER")] : C("DEFAULT_JSONP_HANDLER");
                exit($handler."(".json_encode($data,$json_option).");");  
            case "EVAL" :
                // 返回可執行的js腳本
                header("Content-Type:text/html; charset=utf-8");
                exit($data);            
            default     :
                // 用于擴展其他返回格式數據
                Hook::listen("ajax_return",$data);
        }
    }

其中 C("DEFAULT_AJAX_RETURN") 獲取到的配置默認是 json
很明顯 Hook::listen("ajax_return",$data) 所在的位置,決定了它正常情況都不會被調用。
不管你將它改成 xmljsonp、還是 eval

于是為了使這個 Hook 生效,只能將 DEFAULT_AJAX_RETURN 這個配置改成 jsonxmljsonpeval 之外的任意字符串。。。比如我將它改成 "DEFAULT_AJAX_RETURN" => "hook"

然后在創建文件:/Application/Admin/Conf/tags.php

 array("AdminBehaviorsajaxBehavior"),
);

再創建文件:/Application/Admin/Behaviors/ajaxBehavior.class.php


我的目的是:Controller 內調用 $this->error("tmdphp") 的時候,響應的 HTTP 狀態碼變成 500。
這樣客戶端才會正確的執行 jQuery.ajaxerror 回調。

其實這也算另一個 Bug 吧,ThinkController::error 然道不應該響應一個錯誤的 HTTP 狀態碼?

但是沒辦法,鑒于團隊的平均水平,用 ThinkPHP 開發仍然是最佳選擇。

等會去 Github 提交個 PR 看看會不會被采納。。。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30334.html

相關文章

  • 云幫(ACP)3月升級,支持PHP7、修復若干Bug

    摘要:本月產品層面的升級主要集中在語言源碼構建方面,全面支持和并兼容開發框架。研發團隊在這一個月中對底層組件進行了升級與調整,修復了個中等級別以上的。因為這個焦點,有廣泛的支持,規格易于實現。 全面支持一條命令安裝云幫平臺、調整SDN網絡組件、8 個中等級別以上的bug修復、云幫社區版 迎來2017年3月升級版本,本次升級主要集中在平臺底層服務,以及云幫的私有化安裝部署的流程上,針對SDN網...

    lastSeries 評論0 收藏0
  • 基于ThinkPHP5拿來即用高性能后臺管理系統

    摘要:數據庫文件已經上傳,安裝配置就可以使用簡稱即基于的后臺管理系統官方文檔地址在線體驗地址賬戶密碼線上倉庫在線地址源代碼下載克隆直接下載本地部署運行環境要求建議配置虛擬域名若不清楚,請自行解決之,方便接下來開展你的開發工作。 喜歡就Star,不只是Fork; 想要分享的動機才是驅動力,而技術僅僅是一種方法。 數據庫文件已經上傳,安裝配置就可以使用 showImg(https://seg...

    894974231 評論0 收藏0
  • 基于ThinkPHP5拿來即用高性能后臺管理系統

    摘要:數據庫文件已經上傳,安裝配置就可以使用簡稱即基于的后臺管理系統官方文檔地址在線體驗地址賬戶密碼線上倉庫在線地址源代碼下載克隆直接下載本地部署運行環境要求建議配置虛擬域名若不清楚,請自行解決之,方便接下來開展你的開發工作。 喜歡就Star,不只是Fork; 想要分享的動機才是驅動力,而技術僅僅是一種方法。 數據庫文件已經上傳,安裝配置就可以使用 showImg(https://seg...

    SHERlocked93 評論0 收藏0
  • TP-admin即基于ThinkPHP5拿來即用高性能后臺管理系統

    摘要:即基于拿來即用高性能后臺管理系統官方文檔地址在線體驗地址賬戶密碼線上倉庫在線地址源代碼下載克隆直接下載本地部署運行環境要求建議配置虛擬域名若不清楚,請自行解決之,方便接下來開展你的開發工作。 新版本在線體驗地址已經上線,歡迎體驗? ---2017-01-14 喜歡就Star,不只是Fork; 想要分享的動機才是驅動力,而技術僅僅是一種方法。 ====================...

    Hydrogen 評論0 收藏0

發表評論

0條評論

Dogee

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<