我知道这个问题已经快 4 年了,并且已经有一个公认的答案,但我想提供一个替代解决方案并指出你的错误。
第 1 部分:解决方案
使用请求导航的传统解决方案POST
是接受的答案使用的表单。在此基础上,我将介绍一个使用 DOM 以编程方式创建表单的解决方案。
var payload = {
name: 'John',
time: '2pm'
};
var form = document.createElement('form');
form.style.visibility = 'hidden'; // no user interaction is necessary
form.method = 'POST'; // forms by default use GET query strings
form.action = 'index.html';
for (key in Object.keys(payload)) {
var input = document.createElement('input');
input.name = key;
input.value = payload[key];
form.appendChild(input); // add key/value pair to form
}
document.body.appendChild(form); // forms cannot be submitted outside of body
form.submit(); // send the payload and navigate
我index.html
按照您的原始代码使用,但我会接受已接受答案的建议并使用 PHP 来接受和处理POST
数据。
第 2 部分:问题
您原始解决方案的主要问题是它使用$.post
了一个建立在$.ajax
. AJAX 用于从服务器检索数据并在当前页面中使用它,而不是导航到另一个页面。