<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                >[warning] 已廢棄之前的直接將 json 格式數據 exit 出來,遵循官方推薦使用 \think\Response::create() 方法進行數據返回 ## json 數據返回 由于前端 ajax 請求回調的刷新、重定向、其他回調都是后臺嚴格的 json 數據返回控制,請安裝規范返回規定的 json 數據,框架已經給封裝了四個常用 json 數據方法方法 ###ajax_return 這個為標準規范格式的 json 數據返回,其他所有的 json 數據返回全部以這個為基礎進行封裝,如果需要添加其他參數,可以在 `$extend` 中自行擴展 ``` /** * ajax數據返回,規范格式 * @param array $data 返回的數據,默認空數組 * @param string $msg 信息 * @param int $code 錯誤碼,0-未出現錯誤|其他出現錯誤 * @param array $extend 擴展數據 */ function ajax_return($data = [], $msg = "", $code = 0, $extend = []) { $ret = ["code" => $code, "msg" => $msg, "data" => $data]; $ret = array_merge($ret, $extend); return Response::create($ret, 'json'); } ``` ###ajax_return_error 快速返回一條標準的包含錯誤信息的 json 數據 ``` /** * 返回標準錯誤json信息 */ function ajax_return_error($msg = "出現錯誤", $code = 1, $data = [], $extend = []) { return ajax_return($data, $msg, $code, $extend); } ``` ###ajax_return_adv 框架中幾乎所有的操作全部由此方法返回 json 數據,用于控制前端頁面處理 ``` /** * 框架內部默認ajax返回 * @param string $msg 提示信息 * @param string $redirect 重定向類型 current|parent|'' * @param string $alert 父層彈框信息 * @param bool $close 是否關閉當前層 * @param string $url 重定向地址 * @param string $data 附加數據 * @param int $code 錯誤碼 * @param array $extend 擴展數據 */ function ajax_return_adv($msg = '操作成功', $redirect = 'parent', $alert = '', $close = false, $url = '', $data = '', $code = 0, $extend = []) { $extend['opt'] = [ 'alert' => $alert, 'close' => $close, 'redirect' => $redirect, 'url' => $url, ]; return ajax_return($data, $msg, $code, $extend); } ``` 下面是其中參數的使用說明 | 參數名稱 | 類型 | 使用說明 | | --- | --- | --- | | msg | string | 提示信息,`code` 為 0 時信息使用 `layer.msg` 顯示,3 秒自動消失,`code` 不為 0 時使用 `layer.alert` 顯示,需手動關閉提示信息 | | redirect | enum | 重定向選項,`current`:當前頁重定向到 `url` 地址,`url` 為空刷新當前頁;`parent`:父層頁重定向到 `url` 地址,`url` 為空刷新父層,并且關閉當前層;為空,不執行重定向 | | alert | string | alert 出信息, 為空不 alert | | close | bool | 是否關閉當前層,true 關閉,false 不關閉 | | url | string | 重定向的鏈接,請參考 redirect 用法 | | data | mixed | 需返回的數據,格式根據自己需要而定,只要能轉化為 json 就行 | | code | int | 錯誤碼,0:成功,其他:錯誤 | | extend | array | 擴展數據,在 code、msg、data、opt 這個層級添加自己需要的數據 | 關于此方法的具體使用可以參考下面 `javascript` 代碼 ``` /** * ajax處理,對應服務端ajax_return_adv方法返回的json數據處理 * @param data ajax返回數據 * @param callback 成功回調函數 * @param param 回調參數 */ function ajax_progress(data, callback, param) { if (data.code == 0) { if (typeof data.opt == "object") { var index = parent.layer.getFrameIndex(window.name); if (data.opt.close) { parent.layer.close(index); } if (data.opt.redirect == 'current') { // 當前頁重定向 if (!data.opt.url) { // 刷新 window.location.reload(); } else { // 重定向到 url window.location.href = data.opt.url; } } else if (data.opt.redirect == 'parent') { // 父層重定向 if (!data.opt.url) { // 刷新 window.parent.location.reload(); } else { // 重定向到 url window.parent.location.href = data.opt.url; } // 關閉當前層 parent.layer.close(index); } // 父層彈出信息 if (data.opt.alert) { parent.layer.alert(data.opt.alert); parent.layer.close(index); } if (!data.opt.close && !data.opt.redirect && !data.opt.alert) { parent.layer.msg(data.msg); parent.layer.close(index); } } else { layer.msg(data.msg); } if (typeof callback == "function") { if (typeof param != "undefined") { param.unshift(data) } else { param = [data]; } callback.apply(this, param); } } else { layer.alert(data.msg, {title: "錯誤信息", icon: 2}); } } ``` ###ajax_return_adv_error 快速返回一條錯誤信息 ``` /** * 返回錯誤json信息 */ function ajax_return_adv_error($msg = '', $code = 1, $redirect = '', $alert = '', $close = false, $url = '', $data = '', $extend = []) { return ajax_return_adv($msg, $alert, $close, $redirect, $url, $data, $code, $extend); } ``` ##帶 return 返回 如果調用的方法是最后使用 return 返回的,可以直接使用 return 返回數據 ###返回 json 格式數據 例如 `return ajax_return_adv('操作成功')` , `return ajax_return_adv_error('操作失敗')` , `return \think\Response::create($data, 'json')` ###返回文本數據(不帶HTML) 例如 `return '我是純文本'`, `return \think\Response::create('我是純文本')` ###返回文本數據(帶HTML) 如果直接使用 `return` 返回數據的話,會對 HTML 進行 `htmlspecialcode` 編碼,為了不被編碼,只能采取 `return \think\Response::create('<h1>我不是被編碼</h1>')` ##不帶 return 返回 我們經常會用到一些過濾器,有時需要在過濾里直接返回數據,這時如果使用 `return` 就很不方便了,這時可以使用 `\think\Response()` 和 `HttpResponseException` 異常類,拋出異常即可 ###返回 json 格式數據 例如 `throw new HttpResponseException(ajax_return_adv_error("登錄超時,請先登陸", 400))` ###返回文本數據 例如 `throw new HttpResponseException(new Response('文本'));` ##Url 重定向 不需要引入 traits `\traits\controller\Jump`,直接使用:`throw new HttpResponseException(new Redirect('Pub/login'));`
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看