在AJAX调用中收到的响应显示在另一个HTML页面中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在AJAX调用中收到的响应显示在另一个HTML页面中相关的知识,希望对你有一定的参考价值。
我有一个ajax请求调用,该请求将ID发送给服务器,然后服务器发送JSON响应。我想使用该JSON响应中的值更新pre标签的innerhtml。
<script>
$("#AssociateForm").submit(function(e)
e.preventDefault();
var form = $(this);
var url = form.attr('action');
var local_id = $('input[name=J_ID]').attr('id');
var formData =
'J_ID' : $('input[name=J_ID]').val()
;
console.log(formData)
$.ajax(
url: url,
data: formData,
dataType: 'json',
success: function (datas)
var data = JSON.parse(datas);
if(datas.status)
alert(datas);
//$('#Failure_'+local_id).innerHTML = data.category + ' issue: '+data.j_id +' ('+data.j_status+')'
,
error: function(jqXHR, textStatus)
alert("In error")
)
.done(function(data)
alert(data)
);
);
</script>
由于某种原因,以上代码也无法打印控制台日志。
但是
当响应到来时,不会触发成功部分。而是将完整的JSON字符串打印在另一页上。
"category": "known", "j_id": "AU298", "j_status": "Confirmed"
下面是来自View-Page-source
<html>
<head></head>
<body data-gr-c-s-loaded="true">
<pre style="word-wrap: break-word; white-space: pre-wrap;">
"category": "known", "j_id": "AU298", "j_status": "Confirmed"
</pre>
</body>
</html>
答案
这可能是因为您正在提交表单,并且在提交表单后,将在提交表单时打开一个新标签。要解决此问题,您可能可以使用以下代码:
<form action="..." method="POST" target="_blank">
<input type="submit" id="btn-form-submit"/>
</form>
<script>
$('#btn-submit').click( function() $('#btn-form-submit').click(); );
</script>
另一答案
尝试使用缓存为假
cache: false,
以上是关于在AJAX调用中收到的响应显示在另一个HTML页面中的主要内容,如果未能解决你的问题,请参考以下文章
ajax请求得到的数据怎么在另一个页面显示呢,两个都是html页面
如何将从 Ajax 请求收到的响应重定向到另一个 html 页面
使用 Ajax 调用刷新 JSP 页面上的 div 而没有响应