ohmydengzi
5/31/2019 - 2:20 AM

AJAX返回数据格式

    /**
     * Ajax方式返回数据到客户端
     * @param mixed $data 要返回的数据
     * @param String $type AJAX返回数据格式
     * @return void
     */
    public function ajaxReturn($data, $type = '')
    {
        if (empty($type)) {
            $type = 'json';
        }

        switch (strtoupper($type)) {
            case 'JSON' :
                // 返回JSON数据格式到客户端 包含状态信息
                header('Content-Type:application/json; charset='.CHARSET);
                exit(Json::encode($data));
                break;
            case 'XML' :
                // 返回xml格式数据
                header('Content-Type:text/xml; charset='.CHARSET);
                exit(xml_encode($data));
                break;
            case 'JSONP':
                // 返回JSONP数据格式到客户端 包含状态信息
                header('Content-Type:text/html; charset='.CHARSET);
                $handler = isset($_GET['callback']) ? $_GET['callback'] : self::DEFAULT_JSONP_HANDLER;
                exit($handler.'('.(!empty($data) ? Json::encode($data) : '').');');
                break;
            case 'EVAL' :
                // 返回可执行的js脚本
                header('Content-Type:text/html; charset='.CHARSET);
                exit($data);
                break;
            default :
                exit($data);
                break;
        }
    }