12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>AJAX Example</title>
- </head>
- <body>
- <script>
- // 定义一个 ajaxGet 函数,用于发起 GET 请求
- function ajaxGet(option) {
- // 检查是否提供了 URL 参数
- if (!option.url) {
- return alert('url 必传'); // 如果没有 URL,弹出警告
- }
- let str = ''; // 用于存储查询字符串
- // 检查是否有查询参数
- if (option.query) {
- str = '?'; // 初始化查询字符串
- // 遍历查询对象的每一个键值对
- for (let key in option.query) {
- // 将每个键值对添加到查询字符串中,并进行 URL 编码
- str += `${encodeURIComponent(key)}=${encodeURIComponent(option.query[key])}&`;
- }
- str = str.slice(0, -1); // 去掉最后的 '&'
- }
- // 使用 fetch API 发起 GET 请求
- fetch(option.url + str)
- .then(response => {
- // 检查响应是否成功
- if (!response.ok) {
- throw new Error(`HTTP error! status: ${response.status}`); // 如果响应不成功,抛出错误
- }
- return response.text(); // 返回响应的文本内容
- })
- .then(data => {
- // 调用 success 回调函数,并传入获取的数据
- option.success && option.success(data);
- })
- .catch(err => {
- // 如果发生错误,调用 error 回调函数
- option.error && option.error(err);
- });
- }
- //调用 ajaxGet 函数
- ajaxGet({
- url: '2024demo.txt',
- query: { // 查询参数
- name: 'zhangsanfeng', // 用户名
- age: 20 // 年龄
- },
- success: (data) => {
- console.log(data); // 成功时在控制台打印返回的数据
- },
- error: (err) => {
- console.error(err); // 发生错误时在控制台打印错误信息
- }
- });
- </script>
- </body>
- </html>
|