我有以下的HTML标记为什么“在新选项卡中打开”发送GET请求?
<a href="#" id="navBar_navBarInput_3_subNavDropdownInput_0_subNavLinkInput_0" onclick="redirectPost(4,'EntryData.aspx');">My Link</a>
JavaScript的“redirectPost”
function redirectPost(id, url) {
post(url, { id: id });
}
function post(path, params, method) {
method = method || "post";
var form = document.createElement("form");
form.setAttribute("method", method);
form.setAttribute("action", path);
for (var key in params) {
if (params.hasOwnProperty(key)) {
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", key);
hiddenField.setAttribute("value", params[key]);
form.appendChild(hiddenField);
}
}
document.body.appendChild(form);
form.submit();
}
这里的交易:当我只需点击链接时,页面将定期POST请求。但是每当我使用“在新选项卡中打开”选项时,它会发送一个GET请求,这对我来说是一个问题,因为我做了一些验证背景。
有没有人有任何想法为什么这样表现?
谢谢!
此外,'form.submit'将覆盖链接的以下内容,因此不需要返回'(尽管当然这是最好的)。 –
如果在脚本 – mplungjan
:-)中出现错误,在顶部的preventDefault将是最好的。一般来说,现代事件处理,真的...... –