簡體   English   中英

JavaScript無法在Firefox中發送發布參數

[英]Javascript not sending post parameters in Firefox

我有以下js函數,可將發布請求發送回主索引頁面。 該腳本可在Chrome中運行,但在發回頁面時仍無法在firefox中發送任何參數。 在檢查Firefox中的頁面后,我將通過“網絡”標簽進行驗證。

function addDrive(ans){
    $.post("index.php", {add_drive: ans });
    location.reload();
}

通過我在頁面上放置的按鈕上的onClick調用此函數:

<button onClick="addDrive('y')">Add Drive</button>

過去我曾經使用過適用於Firefox和chrome的類似功能,但我無法弄清楚為什么它在Firefox中不起作用。

我的建議是做這樣的事情:

function addDrive(ans) {
  $.post("index.php", {add_drive: ans}).then(function() {
    location.reload();
  });
}

這樣可以確保僅在成功完成發布請求后才重新加載頁面。 如果您願意,也可以提供success處理程序,而不是使用此promises API。 你也可以做同樣的在always處理程序,以確保即使請求失敗,但是這將是主觀您的要求它重新加載頁面。

但是,我認為這根本不是一種好的做法,如果您必須重新加載頁面,則可以只擁有一個表單並將其發布,而不是嘗試使用jquery處理程序進行發布。 您可以在javascript中執行諸如form.submit() ,並且只要表單上的方法設置為“ POST”,就可以通過郵寄請求提交表單並通過表單提交數據。您不必手動重新加載頁面,您可以從服務器端進行重新加載。

成功發布后,嘗試重新加載頁面:

$.post("index.php", {add_drive: ans}).done(function( data ) {
    location.reload();
});

暫無
暫無

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

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