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

HTML 表單提交後 AJAX 異步調用另一個 URL:修改 action 屬性實現

     編輯:程式設計綜合問答

問題

表單提交時,想先按原 action 提交,再 AJAX 請求另一個 URL,或直接將表單提交到另一個 URL。

最簡方案:JS 修改 form.action 再提交

function submitForm() {
    if (_finst_taskComment.value === "") {
        alert("請填寫審批意見");
        return;
    }
    var form = document.getElementsByTagName("form")[0];
    form.action = 'https://another-url.com/api/submit'; // 修改目標 URL
    form.submit(); // 同步提交到新地址
}

若需「提交原表單 + 異步調用另一 URL」

function submitForm() {
    if (_finst_taskComment.value === "") {
        alert("請填寫審批意見");
        return;
    }
    var form = document.getElementsByTagName("form")[0];
    
    // 1. 異步通知另一系統(不阻塞表單提交)
    fetch('https://another-url.com/api/notify', {
        method: 'POST',
        headers: {'Content-Type': 'application/json'},
        body: JSON.stringify({comment: _finst_taskComment.value})
    }).catch(console.error); // 靜默失敗不影響主流程
    
    // 2. 正常提交表單
    form.submit();
}

關鍵點

  • form.action 可動態修改,form.submit() 會向當前 action 發起**同步**導航請求。
  • fetch/XMLHttpRequest 是**異步**,不阻塞頁面跳轉。
  • 若異步請求必須成功才能提交表單,用 await fetch(...) 並處理錯誤,但會延遲用戶感知。

總結

修改 form.action 再 submit() 是將表單提交到任意 URL 的最簡單方法;若需額外異步通知,用 fetch 並發即可。

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