封装ajax公用方法

移动用户-6615882
移动用户-6615882
2024-12-15 20浏览

摘要:

封装了 Ajax 公用方法,包括 GET、POST、JSONP 等请求方式,并提供了错误处理和响应处理功能。通过使用这些方法,可以简化 Ajax 请求的编写并提高代码的可维护性。

代码:

<?php

class AjaxRequest {

    /**
     * 发送 GET 请求
     *
     * @param string $url 请求地址
     * @param array $params 请求参数
     * @return string 响应内容
     */
    public static function get($url, $params = []) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HEADER, false);
        if (!empty($params)) {
            curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
        }
        $response = curl_exec($ch);
        if (curl_errno($ch)) {
            throw new Exception(curl_error($ch));
        }
        curl_close($ch);
        return $response;
    }

    /**
     * 发送 POST 请求
     *
     * @param string $url 请求地址
     * @param array $params 请求参数
     * @return string 响应内容
     */
    public static function post($url, $params = []) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
        $response = curl_exec($ch);
        if (curl_errno($ch)) {
            throw new Exception(curl_error($ch));
        }
        curl_close($ch);
        return $response;
    }

    /**
     * 发送 JSONP 请求
     *
     * @param string $url 请求地址
     * @param array $params 请求参数
     * @param string $callback 回调函数名
     * @return string 响应内容
     */
    public static function jsonp($url, $params = [], $callback = 'callback') {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HEADER, false);
        if (!empty($params)) {
            curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
        }
        $response = curl_exec($ch);
        if (curl_errno($ch)) {
            throw new Exception(curl_error($ch));
        }
        curl_close($ch);
        return $callback . '(' . $response . ');';
    }
}

总结:

上述 Ajax 公用方法封装了常用的 Ajax 请求类型,可以满足大部分的异步请求需求。通过使用这些方法,开发者可以快速构建 Ajax 请求,并简化代码的编写。

php中文网 免责声明:以上内容除特别注明外均来源于网友提问,php中文网回答,权益归原著者所有;