虚拟表单提交模拟ajax请求
来源:互联网 发布:淘宝卖家怎么添加商品 编辑:程序博客网 时间:2024/05/20 12:50
前端开发人员经常会遇到ajax请求出现跨域问题,比如做单点登录。结合本人开发经验推荐一方法——虚拟表单提交,解决此类问题。此方法的特点是简单易懂!好了,直接上干货!
function formCommit(){
var formobj;
// window.top.open(url,"_blank");
$.ajax({
type: 'post',
dataType : 'jsonp',
url: '某个具体系统的url',
success:function(data){
// 虚拟化一个表单,放在一个虚拟化的iframe中,后提交
formobj = $("<form style='display:none' id='formMap' target='_self' action='某个具体系统的url' method='post'><input name='username' value='用户名'/><input name='password' value='密码'/><input name='jsonp' value='true'/><input name='token' value='"+data+"'/></form>");
// 虚拟化一个iframe,承载虚拟化表单
var tempIframe = $("<iframe style='display:none' src='登录页面统一路径下任何一个jsp或html文件' id='tempIframe' name='tempIframe' />");
// body中添加虚拟化的iframe
$("body:eq(0)").append(tempIframe);
// 设置iframe的src
$("#tempIframe").attr("src", "AYKJ.GISDevelopTestPage.html");
// 获取iframe中的内容
var mainIframe = (document.getElementById("tempIframe").contentDocument || document.getElementById("tempIframe").contentWindow.document);
// iframe中添加表单
$(mainIframe.body).append($(formobj));
// 在iframe中找到表单并提交
$(mainIframe).find("#formMap").submit();
setTimeout(function(){
window.parent.open("系统中具体的某个页面的url","_blank");
},1500);
function formCommit(){
var formobj;
// window.top.open(url,"_blank");
$.ajax({
type: 'post',
dataType : 'jsonp',
url: '某个具体系统的url',
success:function(data){
// 虚拟化一个表单,放在一个虚拟化的iframe中,后提交
formobj = $("<form style='display:none' id='formMap' target='_self' action='某个具体系统的url' method='post'><input name='username' value='用户名'/><input name='password' value='密码'/><input name='jsonp' value='true'/><input name='token' value='"+data+"'/></form>");
// 虚拟化一个iframe,承载虚拟化表单
var tempIframe = $("<iframe style='display:none' src='登录页面统一路径下任何一个jsp或html文件' id='tempIframe' name='tempIframe' />");
// body中添加虚拟化的iframe
$("body:eq(0)").append(tempIframe);
// 设置iframe的src
$("#tempIframe").attr("src", "AYKJ.GISDevelopTestPage.html");
// 获取iframe中的内容
var mainIframe = (document.getElementById("tempIframe").contentDocument || document.getElementById("tempIframe").contentWindow.document);
// iframe中添加表单
$(mainIframe.body).append($(formobj));
// 在iframe中找到表单并提交
$(mainIframe).find("#formMap").submit();
setTimeout(function(){
window.parent.open("系统中具体的某个页面的url","_blank");
},1500);
0 0
- 虚拟表单提交模拟ajax请求
- 模拟发送POST请求,提交表单
- Http 模拟form表单提交Post请求
- extjs4 表单提交 和 Ajax请求 示例
- ajax请求如何避免表单重复提交
- ajax 表单提交和异步请求
- Struts2的Ajax表单异步方式提交表单请求
- Form表单提交,Ajax请求,$http请求的区别
- jQuery ajax 请求 和 Submit 提交 form 表单
- ajax请求,一次将表单的内容提交的Action
- Easyui通用消息提示、提交表单、ajax请求
- ajax异步请求提交上传图片表单并预览图片
- Vue form 表单提交+ajax异步请求+分页
- ajax异步请求提交上传图片表单并预览图片
- jq,ajax,表单提交简单的请求方式
- 关于easyui1.3表单不能提交,ajax请求提交表单没有反应
- Scrapy模拟表单和Ajax发送POST请求
- PHP模拟表单提交
- iOS 的学习经验
- 【剑指offer-Java版】23从上往下打印二叉树
- 大数据相关资源收集
- 【iOS开发】---- SDWebImage支持webp格式的图片
- lua math库
- 虚拟表单提交模拟ajax请求
- java之保留几位小数的几种方式及添加千位分隔符
- 最详细的JavaScript和事件解读
- 344. Reverse String
- 【华为OJ】【004-字符串分隔】
- mysql写不了中文数据
- Java Web 学习笔记(1)---Http请求
- 【剑指offer-Java版】24二叉搜索树后序遍历序列
- Nginx loaction配置和Tomcat部署方式