我有以下的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將是最好的。一般來說,現代事件處理,真的...... –