在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 页面

在 JSP 中使用 Ajax 响应

使用 Ajax 调用刷新 JSP 页面上的 div 而没有响应

WordPress 中的 Ajax 调用返回整个 HTML 页面作为响应

关于html中超链接在另一个页面中的div中显示