首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

JS 多文件共享 AJAX 基礎 URL 的最佳實踐

     編輯:程式設計疑難解答

場景

項目中多個 JS 文件發起 AJAX 請求,基礎 URL 相同(如 /api/v1),需統一管理、便於維護。

方案對比

方案優點缺點
全局變量 window.API_BASE簡單直接污染全局、無模塊化、易衝突
config.js 輸出常量,<script> 引入無構建工具也可用需保證加載順序、非模塊化
ES Module export const BASE = ...標準模塊化、樹搖優化需構建/瀏覽器支持
封裝 Request 類/函數統一攔截、錯誤處理、攜帶 Token稍多代碼

推薦:封裝統一請求庫

// utils/request.js
const BASE_URL = 'https://api.example.com/v1';
export async function request(url, options = {}) {
    const res = await fetch(BASE_URL + url, {
        headers: { 'Content-Type': 'application/json', ...options.headers },
        ...options
    });
    if (!res.ok) throw new Error(`HTTP ${res.status}`);
    return res.json();
}

// 業務文件
import { request } from './utils/request';
const users = await request('/users');
const user = await request('/users/1', { method: 'POST', body: JSON.stringify(data) });

legacy 環境(無構建)

// config.js
window.APP_CONFIG = { API_BASE: '/api/v1' };

// 其它 JS 確保在 config.js 之後加載
$.ajax({ url: APP_CONFIG.API_BASE + '/users', ... });
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved