Javascript 如何防止表单提交时重定向
当我对一个页面进行AJAX调用时,我得到了一个带有用户参数的表单,该页面随后被提交到一个url,这样我就可以预先为同一个用户创建一个会话 那个人去了那个网站,他在那里看到了他的名字。 我创建了一个id为abc_session的div标签,将id为fm1的表单分配给它,然后提交表单 现在按照要求创建会话,但页面会自动重定向到表单提交到的站点url。我只是不想发生这种情况 有人能提出一些建议……或者一些解决方法吗 AJAX返回的表单如下所示: 按照quentin的建议,尝试提取数据并中断另一个ajax调用,但阻止了此错误跨源请求:同源策略不允许读取远程资源。这可以通过将资源移动到同一域或启用CORS来解决Javascript 如何防止表单提交时重定向,javascript,jquery,ajax,Javascript,Jquery,Ajax,当我对一个页面进行AJAX调用时,我得到了一个带有用户参数的表单,该页面随后被提交到一个url,这样我就可以预先为同一个用户创建一个会话 那个人去了那个网站,他在那里看到了他的名字。 我创建了一个id为abc_session的div标签,将id为fm1的表单分配给它,然后提交表单 现在按照要求创建会话,但页面会自动重定向到表单提交到的站点url。我只是不想发生这种情况 有人能提出一些建议……或者一些解决方法吗 AJAX返回的表单如下所示: 按照quentin的建议,尝试提取数据并中断另一个aja
您应在提交表单后立即使用e.preventDefault。您正在提交表单:
document.getElementById("abc_session").innerHTML=data;
document.fm1.submit(); // Here
不要那样做
从中提取数据并发出另一个Ajax请求。事件处理程序是由就绪事件触发的,而不是由表单提交触发的。阻止默认操作不会做任何事情,因为就绪事件没有默认操作。我的错误。我误解了。查看此链接以获取参考:您能否分享如何从运行时通过ajax检索的表单中提取数据的示例。我提取了数据并使用ajax发布了数据,但它给了我一个错误:跨源请求被阻止:同源策略不允许读取远程资源。这可以通过移动资源到同一域或启用CORS。你知道这里有什么问题吗?
$(document).ready(function() {
function callwebsite()
{
$.ajax({
url: "/NASApp/benemain/website",
data: {},
type:"POST",
dataType: 'text',
cache: false,
success: function (data) {
alert("Call made to website.. ");
console.log(data);
document.getElementById("abc_session").innerHTML=data;
document.fm1.submit();
},
error : function(response){
console.log('ERROR');
},
statusCode : {
500 : function() {
console.log('500 error');
window.location.reload(true);
},
401 : function() {
console.log('401 error');
window.location.reload(true);
},
404 : function(){
console.log('400 error');
}
}
});
}
callwebsite();
$.ajax({
url: lcAction,
data: {partner_id:lcPartner,login_parameters:lcLP },
type:"POST",
headers:{'Access-Control-Allow-Origin': '*'},
dataType: 'text',
//crossDomain: true,
//cache: false,
success: function(data)
{
alert("success");
},
error:function(response)
{
//alert("error");
console.log(response);
}
});
document.getElementById("abc_session").innerHTML=data;
document.fm1.submit(); // Here