`
joynet007
  • 浏览: 42242 次
  • 性别: Icon_minigender_1
  • 来自: 宿迁
社区版块
存档分类
最新评论

Ajax 的发送请求和直接提交Form 到Action 有什么区别?

阅读更多
项目的说明,我是用jxl 生成excel 报表但是由于生成的报表过程涉及到大量的计算,客户等待时间较长。所以客户需要一个类似于进度条的东西,或者一句提示的信息让客户知道 现在正在生成Excel 请等待。。。

等到生成玩了之后,应提示用户生成完成!!

可是我用JavaScript 请求 action 可以。但是用Ajax 提交请求就不可以!请问为什么??

/*
*javascript 的提交到Action
*/

<script>
function ms(){
document.location.href="<%=imgpath%>/yusuan/tongji/titletongji.do?yearStr="+yearStr;
    }
</script>

/*
*Ajax 的提交Action
*/
<script>
    var xmlhttp;
                       
                        try{
                                  xmlhttp=new ActiveXObject('Msxml2.XMLHTTP');
                    
                         }catch(e){
                                    try{
                                            xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
                                    }catch(e){
                                                    try{
                                                             xmlhttp= new XMLHttpRequest();
                                                     }catch(e){ }
                                    }
                        }
            

                     
        xmlhttp.onreadystatechange = function(){
                       if(xmlhttp.readystate==4){
                                  if(xmlhttp.status==200){
                                   parseResults();   
                                              }else{
                                                     var ref=document.getElementById("menu1");
ref.style.visibility="visible";
                                              }
                                 }else{
                                 var ref=document.getElementById("menu1");
ref.style.visibility="visible";
                                 }
}
                      
        function parseResults(){
    if(xmlhttp.responseText.substring(0,5)=="wrong"){    
    var ref=document.getElementById("menu1");
ref.style.visibility="hidden";
    //return;
    }
    }
  
function ms(){

var yearStr = document.getElementById("yearStr").value;
var ref=document.getElementById("menu1");
ref.style.visibility="visible";
xmlhttp.open("post","<%=imgpath%>/yusuan/tongji/titletongji.do?yearStr="+yearStr);
            xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
//            xmlhttp.setRequestHeader('Content-Disposition','attachment;filename=' + "sdf" + '.xls', 'utf-8');
                xmlhttp.send(null);
                return ;
}
                      
          
          // }          
       
</script>


分享到:
评论
1 楼 joynet007 2007-09-12  
提示,我的 生成 Excel 实在 Action 中实现 ,我不知道


wwb.write();
response.setContentType("application/vnd.ms-excel");
response.addHeader("Content-Disposition","attachment;filename=" + URLEncoder.encode(name + ".xls", "utf-8"));

这个是作什么用的 ,是不是 和Ajax 中的
xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xmlhttp.send(null);
return ;


有冲突或者别的关系!!

相关推荐

    按钮的Ajax请求时一次点击两次提交的解决方法

    这是因为如果未正确处理,一个简单的按钮点击可能会导致Ajax请求和表单提交同时发生,造成不期望的重复提交问题。 当使用HTML表单提交数据时,点击类型为submit的按钮默认会触发表单的提交。在使用JavaScript的Ajax...

    jsp+ajax发送GET请求的方法.docx

    jsp+ajax 发送 GET 请求的方法 本文主要介绍了 jsp+ajax 发送 GET 请求的方法,包含了 Ajax 数据的发送与 JSP 文件的处理技巧。下面是详细的知识点: 一、Ajax 发送 GET 请求 Ajax 发送 GET 请求是通过创建 ...

    Ajax表单提交插件jquery form

    **Ajax表单提交插件jQuery Form** 在Web开发中,jQuery Form插件是一个非常实用的工具,它使得使用Ajax技术提交HTML表单变得简单而直观。这个插件扩展了jQuery库,提供了强大的功能,允许开发者无刷新地更新页面...

    ajax方式提交表单,全局提交

    `.project`和`.settings`文件通常与开发环境有关,可能是Eclipse或Visual Studio Code等IDE的项目配置文件,它们不直接影响AJAX表单提交的功能,但对开发和调试过程有帮助。 总之,通过使用jQuery和`jquery.form.js...

    ajax form 提交 动态显示

    这段代码演示了如何监听表单的submit事件,阻止默认行为,然后使用XMLHttpRequest发送AJAX请求,并在接收到响应后动态更新页面。 5. **admin.js文件**: - 从文件名`admin.js`来看,这可能是一个用于管理界面的...

    【ASP.NET编程知识】如何ASP.NET Core Razor中处理Ajax请求.docx

    在 Script 代码中,使用 jQuery 库来发送 Ajax 请求,使用 `$.post()` 方法来发送请求到服务器端。服务器端使用 Razor Pages 来处理请求,使用 `OnPostAsync()` 方法来处理异步请求。 在后台代码中,使用 `...

    Ajax中get与post请求详解

    Ajax 中 get 与 post 请求的详细解释 Ajax 技术中 get 与 post 两种请求方式是...在 Ajax 中,get 和 post 两种请求方式都有其特点和缺陷,开发者应该根据实际情况选择合适的请求方式,以确保数据的安全性和可靠性。

    struts2 ajax上传图片以及提交form表单的值

    在Struts2框架中,结合AJAX上传图片并提交表单数据涉及到文件上传拦截器的配置、Action类的设计、前端表单的构建以及AJAX请求的编写。这个过程需要对Struts2的MVC模式有深入理解,并熟悉HTML5的`FormData`对象和AJAX...

    使用jQuery.form插件,实现完美的表单异步提交

    总结一下,jQuery.form插件通过提供简单的API和强大的功能,极大地简化了表单异步提交的实现。通过理解并熟练运用这些方法,你可以创建出更高效、用户体验更佳的Web应用。无论是在简单的数据提交还是复杂的文件上传...

    EXT异步提交FORM表单

    - **返回结果**:Struts2支持多种类型的结果返回,如redirect、dispatcher等,但对于AJAX请求而言,最常用的是返回JSON格式的数据。 ```java @Results({ @Result(name="json", type="json") }) public String ...

    不用form提交表单,用ajax上传文件

    使用jQuery或者原生JavaScript编写AJAX请求。这里以jQuery为例,监听按钮点击事件,获取文件,并构造FormData对象进行上传: ```javascript $('#uploadBtn').on('click', function() { var file = $('#fileInput...

    AJAX提交与FORM提交的区别说明

    - **AJAX提交**:默认情况下,AJAX请求受到同源策略限制,只能向同一域名下发送请求。但可以通过CORS(跨源资源共享)配置服务器,实现跨域请求。 - **FORM提交**:FORM提交相对宽松,可以通过`&lt;form action&gt;`指向...

    ajaxForm中文文档

    总的来说,AjaxForm插件提供了丰富的功能和灵活的配置,极大地简化了表单的Ajax提交,对于提高用户体验和优化网页性能非常有帮助。无论是处理简单的表单提交还是复杂的文件上传,AjaxForm都能胜任。通过熟练掌握它的...

    struts2+ajaxForm

    然后,利用jQuery的`$.ajax()`或`$.post()`方法发起Ajax请求,将表单数据发送到服务器。在Struts2 Action中处理这些数据,完成后,将结果以JSON或其他格式返回,再由前端JavaScript解析并更新页面。 5. **jQuery....

    jquery.form.js实现将form提交转为ajax方式提交的方法

    在执行Ajax提交时,页面的提交行为会被拦截,表单数据会被组装成适合Ajax请求的格式,然后通过XMLHttpRequest对象发送到服务器。在这个过程中,页面不会发生重新加载,因此用户体验得到提升。服务器端处理完毕后,...

    Struts2+jQuery ajax的一个商品小系统

    5. **Ajax请求**:在前端,使用jQuery的`$.ajax()`或者更高级的`$.post()`、`$.get()`方法发送Ajax请求,例如添加商品时,将商品信息发送到服务器。 6. **JSP页面**:展示商品列表和详细信息,使用Struts2的标签库...

    JQuery.form表单提交参数详解.txt

    `ajaxForm()` 和 `ajaxSubmit()` 方法都是 JQuery Form 插件的一部分,它们可以用来处理表单的提交动作,实现 AJAX 异步提交。 - **`ajaxForm()` 方法**:此方法用于将表单的默认提交行为替换为 AJAX 提交行为。...

    ajax提交实例,含防止连续提交的功能

    ### AJAX提交实例与防止连续提交功能解析 #### 一、概述 本文将详细介绍一个使用AJAX进行表单提交的示例代码,并重点讲解如何通过设置全局变量来避免用户连续点击导致的数据重复提交问题。该示例包含了一个名为`...

    平台和web简单demo 3,表单提交 form get

    在表单中,`action`属性指定表单数据应发送到的URL,`method`属性定义提交方式,可以是GET或POST。 2. **GET请求**: GET是最常见的HTTP请求方法,用于从服务器获取资源。在表单提交时,如果设置`method="get"`,...

    Ajax请求session超时处理流程

    Ajax请求session超时处理流程 java服务器端处理: SessionValidateFilter中修改: if (ServerInfo.isAjax(request)) { request.setAttribute("statusCode", 301); request.setAttribute("message", "Session ...

Global site tag (gtag.js) - Google Analytics