摘要:
封装了 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 请求,并简化代码的编写。