摘要:于是為了使這個生效,只能將這個配置改成之外的任意字符串。。。然后在創(chuàng)建文件再創(chuàng)建文件我的目的是內(nèi)調(diào)用的時候,響應的狀態(tài)碼變成。其實這也算另一個吧,然道不應該響應一個錯誤的狀態(tài)碼但是沒辦法,鑒于團隊的平均水平,用開發(fā)仍然是最佳選擇。
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數(shù)據(jù)格式到客戶端 包含狀態(tài)信息 header("Content-Type:application/json; charset=utf-8"); exit(json_encode($data,$json_option)); case "XML" : // 返回xml格式數(shù)據(jù) header("Content-Type:text/xml; charset=utf-8"); exit(xml_encode($data)); case "JSONP": // 返回JSON數(shù)據(jù)格式到客戶端 包含狀態(tài)信息 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" : // 返回可執(zhí)行的js腳本 header("Content-Type:text/html; charset=utf-8"); exit($data); default : // 用于擴展其他返回格式數(shù)據(jù) Hook::listen("ajax_return",$data); } }
其中 C("DEFAULT_AJAX_RETURN") 獲取到的配置默認是 json。
很明顯 Hook::listen("ajax_return",$data) 所在的位置,決定了它正常情況都不會被調(diào)用。
不管你將它改成 xml、jsonp、還是 eval。
于是為了使這個 Hook 生效,只能將 DEFAULT_AJAX_RETURN 這個配置改成 json、xml、jsonp、eval 之外的任意字符串。。。比如我將它改成 "DEFAULT_AJAX_RETURN" => "hook"。
然后在創(chuàng)建文件:/Application/Admin/Conf/tags.php
array("AdminBehaviorsajaxBehavior"), );
再創(chuàng)建文件:/Application/Admin/Behaviors/ajaxBehavior.class.php
我的目的是:Controller 內(nèi)調(diào)用 $this->error("tmdphp") 的時候,響應的 HTTP 狀態(tài)碼變成 500。
這樣客戶端才會正確的執(zhí)行 jQuery.ajax 的 error 回調(diào)。其實這也算另一個 Bug 吧,ThinkController::error 然道不應該響應一個錯誤的 HTTP 狀態(tài)碼?
但是沒辦法,鑒于團隊的平均水平,用 ThinkPHP 開發(fā)仍然是最佳選擇。
等會去 Github 提交個 PR 看看會不會被采納。。。
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/30334.html
摘要:本月產(chǎn)品層面的升級主要集中在語言源碼構建方面,全面支持和并兼容開發(fā)框架。研發(fā)團隊在這一個月中對底層組件進行了升級與調(diào)整,修復了個中等級別以上的。因為這個焦點,有廣泛的支持,規(guī)格易于實現(xiàn)。 全面支持一條命令安裝云幫平臺、調(diào)整SDN網(wǎng)絡組件、8 個中等級別以上的bug修復、云幫社區(qū)版 迎來2017年3月升級版本,本次升級主要集中在平臺底層服務,以及云幫的私有化安裝部署的流程上,針對SDN網(wǎng)...
摘要:數(shù)據(jù)庫文件已經(jīng)上傳,安裝配置就可以使用簡稱即基于的后臺管理系統(tǒng)官方文檔地址在線體驗地址賬戶密碼線上倉庫在線地址源代碼下載克隆直接下載本地部署運行環(huán)境要求建議配置虛擬域名若不清楚,請自行解決之,方便接下來開展你的開發(fā)工作。 喜歡就Star,不只是Fork; 想要分享的動機才是驅動力,而技術僅僅是一種方法。 數(shù)據(jù)庫文件已經(jīng)上傳,安裝配置就可以使用 showImg(https://seg...
摘要:數(shù)據(jù)庫文件已經(jīng)上傳,安裝配置就可以使用簡稱即基于的后臺管理系統(tǒng)官方文檔地址在線體驗地址賬戶密碼線上倉庫在線地址源代碼下載克隆直接下載本地部署運行環(huán)境要求建議配置虛擬域名若不清楚,請自行解決之,方便接下來開展你的開發(fā)工作。 喜歡就Star,不只是Fork; 想要分享的動機才是驅動力,而技術僅僅是一種方法。 數(shù)據(jù)庫文件已經(jīng)上傳,安裝配置就可以使用 showImg(https://seg...
摘要:即基于拿來即用高性能后臺管理系統(tǒng)官方文檔地址在線體驗地址賬戶密碼線上倉庫在線地址源代碼下載克隆直接下載本地部署運行環(huán)境要求建議配置虛擬域名若不清楚,請自行解決之,方便接下來開展你的開發(fā)工作。 新版本在線體驗地址已經(jīng)上線,歡迎體驗? ---2017-01-14 喜歡就Star,不只是Fork; 想要分享的動機才是驅動力,而技術僅僅是一種方法。 ====================...
閱讀 1872·2023-04-26 01:58
閱讀 1994·2019-08-30 11:26
閱讀 2737·2019-08-29 12:51
閱讀 3505·2019-08-29 11:11
閱讀 1192·2019-08-26 11:54
閱讀 2107·2019-08-26 11:48
閱讀 3489·2019-08-26 10:23
閱讀 2392·2019-08-23 18:30