对于iframe默认get提交 需要进行post数据的大量提交,给找到外国网站的简单例子如: <form action="iframe.php" target="my-iframe" method="post"> <label for="text">Some text:</label> <input type="text" name="text" id="text"> <input type="submit" value="post"> </form> <iframe name="my-iframe" src="iframe.php"></iframe> 因为我项目用到的是 页面用的tab 样式(如何实现tab样式切换这里不做说明),嵌入的是三个页面iframe,需要在切换的时候更改target指定iframe名字,为了验证是否可行,只好试下,不然无别的办法。 <form class="form-inline" role="form" id="myFrm" name="myFrm" action="<%=h_common_path%>/ccer/initCcerProject.action?state=notice" method="post"> <table class="table table-bordered"> 一堆<input />条件 ,可以使用jquery json来post得到查询参数 </table> </form>
//条件查询,查询按钮触发事件 function querySelect(){ var myFrmJsonStr = formToJsonStr("myFrm"); console.log("-------------:"+myFrmJsonStr); //放在隐藏域中,后台getParameter()这个参数 $("#myFrmJsonStr").val(myFrmJsonStr); document.getElementById("myFrm").target="tabsFrame_ypz"; //当点击查询按钮才处理时间 document.getElementById("myFrm").submit(); } //处理form json字符串 function formToJsonStr(frmId){ var jsonStr = "{"; var formArray = $("#"+frmId).serializeArray(); for(var i = 0; i < formArray.length;i++ ){ var formArrayValue = formArray[i]; var name = formArrayValue.name; var value = formArrayValue.value; //hidden Input name名字为 MyFrmJsonStr不组合成json字符串提交到后台,这里它的作用是作为json字符串赋值用 if(name!="myFrmJsonStr") jsonStr = jsonStr + "'"+name + "':"+"'"+value+"',"; } jsonStr = jsonStr.substring(0,jsonStr.length-1) + "}"; return jsonStr; } tabCut('div_ypz'); function tabCut(tabId){ var url = ""; var getJsonStr = $("#myFrmJsonStr").val(); switch (tabId) { case 'div_ypz': url = "/ccer/initCcerProject.action?state=notice"; //url = "/pages/ccer/noticeCCER.jsp"; if(!document.getElementById("tabsFrame_ypz")){ $("#"+tabId).append('<iframe name="tabsFrame_ypz" id="tabsFrame_ypz" style="height: 680px;width:100%" border="0" frameborder="0" src="<%=h_common_path %>'+url+'">浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。</iframe>'); } if(""!=getJsonStr){ document.getElementById("myFrm").action="<%=h_common_path %>"+url; document.getElementById("myFrm").target="tabsFrame_ypz"; } break; case 'div_yzc': url = "/ccer/initCcerProject.action?state=record"; if(!document.getElementById("tabsFrame_yzc")){ $("#"+tabId).append('<iframe name="tabsFrame_yzc" id="tabsFrame_yzc" style="height: 680px;width:100%" border="0" frameborder="0" src="<%=h_common_path %>'+url+'">浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。</iframe>'); } if(""!=getJsonStr){ document.getElementById("myFrm").action="<%=h_common_path %>"+url; document.getElementById("myFrm").target="tabsFrame_yzc"; } break; case 'div_yqf': url = "/ccer/initCcerProject.action?state=issue"; if(!document.getElementById("tabsFrame_ygf")){ $("#"+tabId).append('<iframe name="tabsFrame_ygf" id="tabsFrame_ygf" style="height: 680px;width:100%" border="0" frameborder="0" src="<%=h_common_path %>'+url+'">浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。</iframe>'); } if(""!=getJsonStr){ document.getElementById("myFrm").action="<%=h_common_path %>/"+url; document.getElementById("myFrm").target="tabsFrame_ygf"; } break; } if(""!=getJsonStr){ document.getElementById("myFrm").submit(); } console.log("tabId:"+tabId+"///// url:"+url); } 后台java代码: 处理jsonStr代码段如下: if(!"".equals(jsonStr)){ //jsonStr格式 为 {"prName":"项目名称","psr":"psr状态"} ,根据json格式字符格式来get()值 net.sf.json.JSONObject jsonObj = net.sf.json.JSONObject.fromObject(jsonStr); String prName=(String) jsonObj.get("prName"); String psr = (String) jsonObj.get("psr"); ///如果页面的字段 跟查询需要的字段一样 就可以直接追加来使用,不会在后期还要判断。 }
相关推荐
以前在面试的时候经常遇到问关于跨域的事儿,所以自己对跨域有一定的概念性了解,知道什么是跨域以及解决跨域的方法,但是具体实际从来没有操作过,直到最近在公司项目中,遇到了一个需要使iframe跨域进行POST提交的...
### 使用iframe与POST方法传输数据 #### 一、引言 在Web开发中,`<iframe>`(Inline Frame)是一种常用的HTML元素,用于在当前页面内嵌入另一个HTML文档。这种方式能够有效地实现在一个页面中展示不同的内容或功能...
在现代Web开发中,文件跨域异步上传是一项...首先,我们创建一个包含文件上传表单的页面,表单需要设置`target`属性为一个`iframe`的ID,这样提交后会把结果加载到`iframe`中,而不会刷新整个页面。例如: ```html ...
4. **处理结果**:在`load`事件的回调函数中,可以读取`iframe`的`contentDocument`或`contentWindow`对象,获取服务器返回的数据,然后根据需要更新页面。 5. **错误处理**:同时,应设置错误处理机制,例如检查...
创建一个隐藏的iframe,将表单嵌入其中,然后在表单提交事件中指定目标为iframe,这样表单的数据就会被发送到iframe加载的URL。 2. **form表单提交**:在HTML中,可以通过设置`<form>`元素的`target`属性为iframe的...
首先看下面的代码片段,我们希望用户在点击页面上的Button时首先将数据提交到指定的第三方页面,然后再执行后台的Page_Load事件。 代码如下: <body> <iframe id=”WebGatewaySubmissionProcessor_IFrame” ...
跨域提交数据是Web应用中的一项挑战,因为同源策略限制了JavaScript对不同域名下的资源访问。然而,iframe可以通过`CORS`(跨源资源共享)策略解决这个问题。 - **iframe回调**:当iframe加载完成,即文件上传成功...
设置`<form>`的`target`属性为之前创建的`<iframe>`的名称,这样当表单提交时,数据就会发送到`<iframe>`而不是当前页面。同时,确保设置`method`属性为"POST"或"GET",以指定数据提交的方式。以下是一个示例: ```...
通过ASP.NET结合HTML和JavaScript,我们可以实现一种无刷新跨域数据提交的方案,它利用了浏览器对iframe元素的特殊处理机制。这种方法不仅可以实现跨域数据的传递,而且避免了整个页面的刷新,从而提高了用户体验。...
`iframe`的`sandbox`属性可以增强安全性,限制`iframe`内的脚本执行、表单提交等行为。例如: ```html <iframe src="http://example.com" sandbox="allow-scripts allow-same-origin"></iframe> ``` 这将允许...
`iframe`可以跨越同源策略限制,实现跨域通信,如使用`window.postMessage`方法,允许父页面与`iframe`之间的数据传递。 ```javascript // 父页面向iframe发送消息 window.postMessage(data, 'http://example.com')...
3. 在AdminLTE的其他资源中,可能还包括了提交数据的案例。通常,这会涉及到AJAX请求,将数据发送到服务器,然后根据返回的结果更新iframe内容。例如,使用jQuery的AJAX方法: ```javascript $.ajax({ type: '...
同时,对于表单提交,可能也采用了类似的方式,通过JavaScript异步发送POST请求,实现无刷新的交互。 此外,由于提到"还有使用js刷新的案例在我另外的资源里",我们可以推测这个压缩包可能只是整体项目的一部分,...
这是因为在XmlHttpRequest的send()方法中,不允许提交数据类型为multipart/form-data的表单。但是,通过将表单提交到一个隐藏的iframe,可以绕开这个限制。目标iframe可以是同一个页面上的iframe或者另一个页面上的...
表单提交后,数据会发送到`upload.php`,而页面不会刷新。 在服务器端,PHP负责接收和处理上传的文件。`upload.php`需要检查文件类型、大小等,确保安全,然后将文件保存到服务器上。例如: ```php $target_dir =...
这可以通过JavaScript的`window.postMessage`方法实现,Unigui应用发送消息到IFrame,IFrame接收到消息后进行相应处理,反之亦然。确保通信的安全性,需要正确设置`message`事件的源(source)和目标(target)。 2...