【发布时间】:2018-07-30 08:52:14
【问题描述】:
我正在处理用户管理表。它有一列“验证”或“撤销”按钮,具体取决于用户是否已在数据库中验证。 例如
<td><button type="button" class="btn btn-primary btn-md" onclick= "Validate(this)" userID={{user.id}}>Validate</button></td>
当用户点击按钮时,它会重定向到调用window.location.href下面的函数来重定向一个新的路由
function Validate(user) {
var id = user.getAttribute("userID")
window.location.href = ("/userManagement/validate/" + id), true
}
问题是,window.location.href 执行的是 GET 而不是 POST。如何修改它,或者有没有其他方法可以通过 POST 请求重定向到我的另一条路线?
谢谢。
这是我根据建议尝试的:
$('#inset_form').html('<form action="/userManagement/validate/' + id + '" name="validate" method="post" style="display:none;"><input type="text" name="api_url" value="' + Return_URL + '" /></form>');
document.forms['vote'].submit();
或
var url = "/userManagement/validate/" + id;
var form = $('<form action="' + url + '" method="post">' +
'<input type="text" name="api_url" value="' + Return_URL + '" />' +
'</form>');
$('body').append(form);
form.submit();
它不会重定向/重新加载页面,我也不认为它可以访问新路由。 另外,我试过了,
var addr = "/userManagement/validate/" + id ;
var xhr = new XMLHttpRequest();
xhr.open('POST', addr, true);
xhr.send();
与上述相同的问题。
【问题讨论】:
-
你不要这样。
window.location.href将始终是一个 GET 请求。作为标准,请改用 AJAX 在服务器上发布您的数据并等待请求 -
@CodeLover:您能否详细说明您的评论?我对此很陌生,以前从未做过 ajax。
-
好吧,如果您从未使用过 AJAX,那么您需要大量阅读和打字。
AJAX means Asynchronous Javascript and XML是 JS 中用于客户端和服务器通信的 XMLHttpRequest 对象。网上有很多不错的文章。更多细节在这里w3schools.com/xml/ajax_intro.asp -
顺便说一句,我的第一条评论。应该是
wait for the response。
标签: javascript php node.js html