js使用post 方式打开新窗口


Posted in Javascript onFebruary 26, 2015

js中一般新打开窗口很简单直接window.open(url);就可以了,

但是由于我希望传递参数到服务端,而且参数看起来很长一串,而且get方式的提交参数长度是有限制的,因此我有以下需求:

1,js中实现post提交

2,返回的页面在新窗口显示

首先我是这么做的:

 $.ajax({   

                     type: "POST",   

                     url: '${contextPath}/analyse/detail.do',   

                     data: {carNum :carNum,ids:refIds},   

                     success: function(str_response) { var obj = window.open("about:blank");   

                        obj.document.write(str_response);   

                     }   

                 });

通过jQuery ajax提交,返回的数据写在新的页面中,但是由于浏览器的会拦截自动弹出的窗口,这样还需用户自己解除拦截,用户体验很差,

然后我又通过模拟form表单的提交来实现

function post(URL, PARAMS) { var temp_form = document.createElement("form");      

            temp_form .action = URL;      

            temp_form .target = "_blank";

            temp_form .method = "post";      

            temp_form .style.display = "none"; for (var x in PARAMS) { var opt = document.createElement("textarea");      

                opt.name = x;      

                opt.value = PARAMS[x];      

                temp_form .appendChild(opt);      

            }      

            document.body.appendChild(temp);      

            temp_form .submit();     

        }

注意:如需新打开窗口 form 的target属性要设置为'_blank'

然后请求post('${contextPath}/analyse/detail.do',{carNum :carNum,ids:refIds});就可以了

Javascript 相关文章推荐
javascript prototype原型操作笔记
Dec 07 Javascript
简略的前端架构心得&&基于editor为例子的编码小技巧
Nov 25 Javascript
jquery实现漂亮的二级下拉菜单代码
Aug 26 Javascript
javascript解决小数的加减乘除精度丢失的方案
May 31 Javascript
Javascript实现跑马灯效果的简单实例
May 31 Javascript
jQuery基于ID调用指定iframe页面内的方法
Jul 06 Javascript
完美解决js传递参数中加号和&号自动改变的方法
Oct 11 Javascript
JavaScript实现三级联动菜单实例代码
Jun 26 Javascript
vue-router跳转时打开新页面的两种方法
Jul 29 Javascript
vue实现抖音时间转盘
Sep 08 Javascript
vant 自定义 van-dropdown-item的用法
Aug 05 Javascript
详细聊聊vue中组件的props属性
Nov 02 Vue.js
JS仿Windows开机启动Loading进度条的方法
Feb 26 #Javascript
JS实现跟随鼠标闪烁转动色块的方法
Feb 26 #Javascript
javascript中typeof操作符和constucor属性检测
Feb 26 #Javascript
JS实现网页滚动条感应鼠标变色的方法
Feb 26 #Javascript
js随机生成网页背景颜色的方法
Feb 26 #Javascript
jQuery简单实现隐藏以及显示特效
Feb 26 #Javascript
最流行的Node.js精简型和全栈型开发框架介绍
Feb 26 #Javascript
You might like
DC宇宙的第一个英雄,堪称动漫史鼻祖,如今成为美国文化的象征
2020/04/09 欧美动漫
使用PHP实现Mysql读写分离
2013/06/28 PHP
PHP整合PayPal支付
2015/06/11 PHP
php接口实现拖拽排序功能
2018/04/23 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
2019/04/30 PHP
php数组遍历类与用法示例
2019/05/24 PHP
PHP执行linux命令6个函数代码实例
2020/11/24 PHP
jQuery动态添加的元素绑定事件处理函数代码
2011/08/02 Javascript
javascript suggest效果 自动完成实现代码分享
2012/02/17 Javascript
input输入框的自动匹配(原生代码)
2013/03/19 Javascript
JavaScript中字符串分割函数split用法实例
2015/04/07 Javascript
简介AngularJS的HTML DOM支持情况
2015/06/17 Javascript
jQuery 选择同时包含两个class的元素的实现方法
2016/06/01 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
2016/11/09 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
2016/12/08 Javascript
javascript ASCII和Hex互转的实现方法
2016/12/27 Javascript
jQuery 表单序列化实例代码
2017/06/11 jQuery
谈谈对vue响应式数据更新的误解
2017/08/01 Javascript
vue中使用rem布局代码详解
2019/10/30 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
2020/02/24 Javascript
OpenLayers3实现对地图的基本操作
2020/09/28 Javascript
python实现简单的计时器功能函数
2015/03/14 Python
使用Python神器对付12306变态验证码
2016/01/05 Python
完美解决Python2操作中文名文件乱码的问题
2017/01/04 Python
python用pickle模块实现“增删改查”的简易功能
2017/06/07 Python
python实现树形打印目录结构
2018/03/29 Python
Python字典的核心底层原理讲解
2019/01/24 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
Luxplus丹麦:香水和个人护理折扣
2018/04/23 全球购物
英国领先的运动物理治疗供应公司:Vivomed
2018/07/14 全球购物
NBA欧洲商店(西班牙):NBA Europe Store ES
2019/04/16 全球购物
毕业生就业自荐信
2013/12/04 职场文书
给校长的建议书100字
2014/05/16 职场文书
白莲教口号
2014/06/18 职场文书
毕业设计工作总结
2015/08/14 职场文书
python之np.argmax()及对axis=0或者1的理解
2021/06/02 Python