我有以下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中不起作用。
答案 0 :(得分:1)
我的建议是做这样的事情:
function addDrive(ans) {
$.post("index.php", {add_drive: ans}).then(function() {
location.reload();
});
}
这将确保您仅在成功完成发布请求后重新加载页面。如果您愿意,也可以提供success
处理程序,而不是使用此promises API。您也可以在always
处理程序中执行相同的操作,以确保即使请求失败也会重新加载页面,但这对您的要求是主观的。
但是,我认为这根本不是一个好习惯,如果你必须重新加载页面,你可以只有一个表单并发布,而不是尝试使用jquery处理程序发布。您可以在javascript中执行类似form.submit()
的操作并提交表单,只要表单上的方法设置为&#39; POST&#39;,就可以通过帖子请求在表单中提交数据。 ,这样你就不必手动重新加载页面了,你可以从服务器端那样做。
答案 1 :(得分:0)
尝试在成功发布后重新加载您的网页:
$.post("index.php", {add_drive: ans}).done(function( data ) {
location.reload();
});