我正在获取一个带有用户参数的表单,当我对一个页面进行AJAX调用时,该页面稍后会被提交到一个url,这样我就可以提前为同一个用户创建一个会话。 那个人去那个地方,他在那里看到了他的名字。 我创建了一个带有ID" abc_session "的div标签,将该表单(其id为 fm1 )分配给它,并提交表单。
现在根据需求会话创建,但页面会自动重定向到提交表单的网站网址。我只是不想发生这种情况。
任何人都可以建议一些东西......或者一些解决方法
AJAX返回的表单如下所示:
<html>
<body onload="document.fm1.submit();return false">
<form name = "fm1" method="post" action = "https://abcd.com/abc ">
<input type=hidden name ="name" value="xyz">
<input type=hidden name ="login_parameters" value="CDF5D71C5BDB942EE2FB6C285B8DEBFE4C5675137B615CD2276571813AAC872AC8942E26B71026414BED1FEA09427D0B20A50FE2F70032D2E5B382598EC3C71D73EAB4ECBF7273A73BEB98ACEA4A0B775E7772BDC7C6746C355">
</form></body>
</html>
,脚本就像这样
$(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();
尝试提取数据并按照quentin的建议捕获另一个ajax调用,但收到此错误&#34;跨源请求被阻止:同源策略禁止读取远程资源。这可以通过移动资源到同一个域或启用CORS。&#34;
$.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);
}
});
答案 0 :(得分:0)
提交表单后,您应立即使用e.preventDefault()
。
答案 1 :(得分:0)
您正在提交表单:
document.getElementById("abc_session").innerHTML=data;
document.fm1.submit(); // Here
不要这样做。
从中提取数据并发出另一个Ajax请求。