Javascript未在Firefox中发送post参数

Javascript未在Firefox中发送post参数,javascript,jquery,firefox,post,Javascript,Jquery,Firefox,Post,我有下面的js函数,它将post请求发送回主索引页。此脚本在Chrome中运行,但在firefox中不发送任何参数,同时仍会发回页面。在firefox中检查页面后,我正在通过网络选项卡验证这一点 function addDrive(ans){ $.post("index.php", {add_drive: ans }); location.reload(); } 此函数通过单击我在页面上放置的按钮来调用: <button onClick="addDrive('y')"&g

我有下面的js函数,它将post请求发送回主索引页。此脚本在Chrome中运行,但在firefox中不发送任何参数,同时仍会发回页面。在firefox中检查页面后,我正在通过网络选项卡验证这一点

function addDrive(ans){
    $.post("index.php", {add_drive: ans });
    location.reload();
}
此函数通过单击我在页面上放置的按钮来调用:

<button onClick="addDrive('y')">Add Drive</button>
添加驱动器

我以前使用过类似的功能,在firefox和chrome上都可以使用,但我不明白为什么在firefox上不起作用。

成功发布后尝试重新加载页面:

function addDrive(ans){
    $.post("index.php", {add_drive: ans });
    location.reload();
}
$.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请求后才能重新加载页面。如果您希望提供
success
处理程序而不是使用此API,那么也可以提供该处理程序。您也可以在
始终
处理程序中执行相同的操作,以确保即使请求失败,它也会重新加载页面,但这取决于您的需求


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

您正在进行重新加载。这意味着页面正在执行的任何操作都可能/将被加载的“新”页面打断,从而终止您的ajax请求