Javascript 不在 Firefox 中发送 post 参数

Javascript not sending post parameters in Firefox

我有以下 js 函数,可将 post 请求发送回主索引页面。此脚本在 Chrome 中运行,但在 post 返回页面时未在 firefox 中发送任何参数。在 firefox 中检查页面后,我正在通过网络选项卡对此进行验证。

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

此函数是通过我放置在页面上的按钮上的 onClick 调用的:

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

我过去使用过类似的功能,这些功能对 firefox 和 chrome 都有效,但我只是想不通为什么这在 firefox 中不起作用。

成功后尝试重新加载您的页面post:

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

我的建议是这样做:

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

这将确保您仅在成功完成 post 请求后才重新加载页面。如果您愿意而不是使用此承诺 API,您也可以提供一个 success 处理程序。您也可以在 always 处理程序中执行相同的操作,以确保即使请求失败也会重新加载页面,但这取决于您的要求。

但是,我认为这根本不是一个好的做法,如果您必须重新加载页面,您可以只使用一个表单 post 而不是尝试 post 使用 jquery 处理程序。您可以在 javascript 中执行类似 form.submit() 的操作,这将提交表单,并且只要表单上的方法设置为,它就会通过 post 请求提交表单中的数据'POST',这样您就不必手动重新加载页面,您可以从服务器端执行此操作。