`
liyixing1
  • 浏览: 959187 次
  • 性别: Icon_minigender_1
  • 来自: 江西上饶
社区版块
存档分类
最新评论

请您先登录,才能继续操作

阅读更多
在写iframe完成长连接获取上传状态的时候,有两次请求,一次上传,一次获取状态的。

发现第一次上传上传的请求和获取状态的请求是不同的session,再次上传时就没问题了。

找了资料,都说是放jsessionid,或者加P3P头信息。这些都不是我现在的真正问题。

在google的bug工具中,看到原因了。
我的iframe写得是
<iframe name="upload${inputName}" src="" id="upload${inputName}" style="display:none">
</iframe>



这个时候,src虽然什么都没写,但是它还是请求了一次
GET about:blank HTTP/1.1

User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2

Referer: http://127.0.0.1:8080/cgodo-fileupload/fileUploadComponent?key=1322999139092file&inputName=file

,再上传的时候,iframe
请求的cookie中并没有发送jsessionid过去
POST /cgodo-fileupload/doUpload.html?key=1322999245171file HTTP/1.1
Cookie: OFBiz.Visitor=10360

这是因为iframe初始化的时候,src是空,它的cookie中没有信息,发送请求过去的时候cookie自然就没有jessionid信息了。服务器就创建了新的session。

而第一次上传完毕后,从服务器中获取到了一个session,所以第二次上传,读取状态的和上传文件的两次请求就是同一个session了。

解决方案
在iframe中,请求一次我们应用中数据最少的一个链接,这样就能生成session了。
我这里使用的是springmvc,写了一个什么都不输出的action。这个action一定要确保把session创建好。
/**
*
* 描述:为iframe生成sessionid
*
* @param locale
* @return
* @author liyixing 2011-12-4 下午07:39:43
*/
@ResponseBody
@RequestMapping("/fileUploadSessionId")
public String fileUploadSessionId(HttpServletRequest request) {
request.getSession(true);

return null;
}

然后让iframe初始化的时候访问这个链接。
  • 大小: 26.9 KB
分享到:
评论

相关推荐

    iframe嵌入链接本地环境正常,正式环境重定向到登录解决

    ### iframe嵌入链接本地环境正常,正式环境重定向到登录问题解决方案 #### 问题背景 在开发过程中,经常需要将一个网页嵌入到另一个网页中,通常的做法是使用HTML中的`&lt;iframe&gt;`标签来实现这一功能。但在实际操作中...

    php实现多站点共用session实现单点登录的方法详解

    利用`iframe`标签,请求其他站点的`set_cookie.php`,将接收到的Session ID设置为当前的Session ID。 2. **数据库存储Session信息**:由于不同服务器无法直接共享Session文件,我们可以将Session信息存储在数据库中...

    beef插件翻译.docx

    下面是 Beef 插件翻译文档中的知识点总结: 1. Module Tree(模块树): Module Tree 是 Beef 插件的核心组件之一,它提供了一个树形结构来组织和管理不同的模块。每个模块都可以在树形结构中进行组织和查找,从而...

    asp自定义表单系统

    自定义表单系统使用说明: ...一般情况下,调用基本设置和表单管理两个页面就可以了,在其它后台添加页面,用iframe读取这两个页面,能实现样式整合。 如有疑问,加QQ51551252,或者登陆www.11223300.com咨询。

    页面间传值

    下面我们将详细探讨这个主题。 1. URL参数传递: 这是最常见也是最简单的页面传值方式。通过在URL后面添加问号(?)并附上键值对,如`www.example.com/page?id=123`,其中`id=123`就是传递的值。这种方式适合传递...

    基于ajax实现文件上传并显示进度条

    下面给大家分享下基于ajax实现文件上传并显示进度条。在jsp部分,需要设计一个表单,form的属性添加 enctype=”multipart/form-data”,设计一个iframe,作为隐藏。form的target等于iframe的name; 在servlet部分:...

    前端工程师面试题手册1

    下面将详细阐述其中的关键点。 1. **HTTP协议**:HTTP(超文本传输协议)是互联网上应用最广泛的一种网络协议,用于从Web服务器传输超文本到本地浏览器。HTTPS(安全超文本传输协议)是在HTTP的基础上加入了SSL/TLS...

    KODExplorer 芒果云-资源管理器

    - 右键菜单在最下面时,右键位置重叠导致点击菜单问题 - 编辑器打开文件时光标问题,处理:移动到行尾;编辑器enter建不显示自动提示 - iframe 打开url 优化。解决canvas问题 - 文件编辑器,载入loading去掉 - ...

    JSP清除页面缓存常用方法小结

    下面的JSP代码展示了如何清除名为"mycookie"的Cookie: ```jsp Cookie killMyCookie = new Cookie("mycookie", null); killMyCookie.setMaxAge(0); // 设置Cookie有效期为0,即立即过期 killMyCookie.setPath("/")...

    阿里前端面试(含答案)1

    IFrame是内联框架,用于在网页中嵌入另一个HTML文档,可能带来加载性能问题和安全风险。 17. **DOCTYPE作用** DOCTYPE声明告知浏览器以哪种HTML或XHTML标准解析文档,严格模式下浏览器严格按照标准解析,混杂...

    大侠论坛8.1

    在这个版本中,我们可以看到多个关键页面,这些页面构成了论坛的核心功能,下面将详细阐述每个页面的主要作用及其在ASP.NET开发中的知识点。 1. **Left.aspx**:这个页面可能是论坛的左侧导航栏,通常包含论坛的...

    PHP聊天室的设计实现

    登录成功后,用户的昵称会被保存到会话变量`$_SESSION['username']`中,并通过`save_online()`函数将用户信息写入在线列表文件。 2. **聊天界面**:用户登录后,页面会跳转到聊天界面。这里使用了`iframe`嵌套另一...

    完整的单点登录功能

    - **跨域认证**:在多域名环境下,SSO需要处理跨域认证问题,这通常通过设置合适的HTTP头或使用iframe来实现。 ### 实际应用中的挑战与解决方案 - **安全性**:确保SSO系统不会成为攻击者的目标。实施严格的访问...

    DWR 的学习代码

    DWR (Direct Web Remoting) 是一个开源的Java库,它允许Web应用程序在客户端和服务器之间进行实时的、异步的通信,无需使用XMLHttpRequest或IFrame。DWR简化了AJAX(Asynchronous JavaScript and XML)开发,使得...

    在线时间统计.doc

    &lt;iframe src="refresh.asp" name="refresh" width="0" height="0" allowtransparency="true" scrolling="no" frameborder="0"&gt; ``` #### 四、注意事项 1. **兼容性问题**:考虑到不同浏览器可能对某些功能的支持...

    模仿百度文库,豆丁网在线阅读doc,pdf,txt文档

    下面将详细阐述实现这个功能所需的关键技术和步骤。 首先,我们要处理的是**PDF文档**。PDF是一种广泛使用的文档格式,具有良好的跨平台性和视觉一致性。在PHP中,可以使用`fpdf`库来生成PDF,但这里我们需要的是...

    ASP网络文件管理系统的设计与实现(源代码+论文).rar

    下面将详细探讨该系统的几个关键知识点。 1. ASP 技术:ASP是微软公司推出的一种服务器端脚本环境,它允许开发者创建动态交互式的网页。在ASP中,开发者可以使用VBScript或JScript等语言编写脚本,服务器端处理这些...

    DWR.xml配置文件说明书(含源码)

    “scope参数允许你配置creator的生命周期,共有以下几个选项:application,session,request,page.这些参数对于用过jsp或servlet的开发人员并不陌生. 3.1 Uing static methods 如果你想远程调用一个creator的静态方法,...

    php的sso单点登录实现方法

    下面将详细介绍这些知识点。 首先,单点登录(Single Sign-On,简称SSO)是一种让用户仅使用一组登录凭证(用户名和密码),就可以访问多个应用系统的方法。SSO的目标是简化用户的登录过程,提高用户体验,减少重复...

    UpdatePanelBnk

    1. **理解UpdatePanel工作原理**:UpdatePanel在客户端使用JavaScript控制一个隐藏的IFrame,当触发更新时,它会发送异步请求到服务器,服务器处理请求并返回HTML片段,然后UpdatePanel将这个片段替换到页面的相应...

Global site tag (gtag.js) - Google Analytics