簡體   English   中英

XMLHttpRequest使用POST打開時發送GET請求

[英]XMLHttpRequest Sending GET Request When Opening with POST

我在網頁上編寫了一個基本功能,以便將數據發布到Web服務器上的另一個頁面,但是,每當我使用此功能提交時,服務器都會報告已收到沒有表單數據的GET請求。

不幸的是,在整理問題時我完全不知所措,因為我不知道是什么原因造成的。

function submit_function(event){
    event.preventDefault();
    var req = new XMLHttpRequest();

    var fd = new FormData();
    fd.append("username", "username");
    fd.append("password", "password");

    req.open("POST", "/auth/login", true);
    req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    req.send(fd);

    return false;
}

任何幫助或見解都值得贊賞,它來晚了,我很可能會錯過一些明顯的東西。

問題是由表單提交干擾請求引起的,因為它是嵌套的。

document.getElementById("formid").onsubmit = function(e){ submit(e); }

通常的原因是您的代碼是由表單提交觸發的,並且您沒有取消表單提交,因此瀏覽器發送表單(作為GET,顯然表單元素上沒有type="POST" )並且這會阻止ajax調用的實際執行(即使您的代碼運行啟動了它,也要撕毀頁面以將其替換為表單提交的結果來阻止它)。 只要確保您阻止表單提交( event.preventDefault() )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM