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

jQuery AJAX 請求 URL 末尾的 `_=1430449833478` 參數是什麼?防緩存時間戳機制詳解

     編輯:程式設計綜合問答

現象

發起 `$.ajax({ cache: false, ... })` 請求時,實際 URL 變為:

/chk_user.php?ajax=checkuser&username=123456&_=1430449833478

參數含義

`_` 參數值為當前時間戳(毫秒數),由 jQuery 自動添加。

作用:防止瀏覽器緩存 GET 請求

  • 瀏覽器對相同 URL 的 GET 請求會直接返回緩存,不發送網絡請求。
  • 添加**每次唯一的時間戳參數**,使 URL 每次不同,強制瀏覽器視為新請求,繞過緩存。
  • 僅在 `cache: false` 且 `type: 'GET'` 時自動添加;POST 請求預設不緩存,不加此參數。

原理演示

$.ajax({
    url: '/api/data',
    type: 'GET',
    cache: false,  // 關鍵:false 時添加時間戳,true 時不添加
    success: function(res) { ... }
});
// 實際發送:/api/data?_=1699999999999

服務端處理建議

  • **忽略該參數**:後台解析參數時直接忽略 `_` 字段,無需業務邏輯處理。
  • 若框架自動綁定所有參數導致報錯,可在控制器層排除:`@RequestParam(required=false) Long _`。

總結

`_=timestamp` 是 jQuery 為**禁用 GET 請求緩存**自動生成的隨機參數,**非安全驗證、非業務字段**,後台直接忽略即可。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved