首页 > 解决方案 > Ajax 不会在成功时重新加载 jsp

问题描述

环境:IE7、jQuery 1.1、Struts 1

上下文:对 Java 方法进行 ajax 调用,最后重新加载相同的 jsp。

步骤是:jsp A -->请求java方法-->做一些事情-->ActionForward到jsp A,在响应中返回。实际上,我正在使用 location.href 使用单个请求来执行此操作,并且它工作正常。

现在我需要处理多个请求和条件,我认为的唯一方法是使用带有 async:false 的嵌套 ajax 调用,但这不是重点。

问题是 ajax 不会像 location.href 那样重新加载 jsp。这个jsp只是主jsp的一小部分,所以我不会重新加载整个jsp。我想我必须以某种方式处理响应,但是如何处理呢?

使用 location.href 调用:

<script>
function myFunction(){
    location.href = 'path/to/java/method=with_some_parameters';
}
</script>

用ajax调用:

<script>
 function myFunction(){
  jQuery.ajax({
   url:'path/to/java/method=with_some_parameters'
   async:false,
   success:function(data){
   //nested ajax

   }
  });
 }
</script>

有一个类似的问题: Reload a page after jquery ajax call,但没有帮助。

另一个:如何在 jQuery Ajax 调用之后管理重定向请求,这看起来更好。我正在尝试一些事情。

标签: javaajaxinternet-explorer-7struts

解决方案


当我在响应中获得完整的 html(在我的情况下为“数据”)时,它使用

function myFunction(){
  jQuery.ajax({
   url:'path/to/java/method=with_some_parameters'
   async:false,
   success:function(data){
     document.open();
     document.write(data);
     document.close();
     //nested ajax

   }
  });
 }

源代码替换整个页面,包括使用 Javascript 的头部


推荐阅读