传带有多个参数的URl串,&的编码问题
来源:互联网 发布:.net域名崛起 编辑:程序博客网 时间:2024/06/09 20:11
今天做菜单管理,菜单的url是菜单表单的一个字段,由于url较复杂,带有多个参数:/mgr/oms/catalog/catgroupMain.jsp?catalogId=10220&storeentIdSelected=10051&treeInitType=1
用post方式提交表单
var data = $('#frmEditModule').serializeArray();
$.post(url, data, submitCallback);
保存完成后url字段没能保存&及其以后的字符串。(post提交的时候,参数会跟在当前URl后面做其参数进行拼接:
/save.action?url=/mgr/oms/catalog/catgroupMain.jsp?catalogId=10220&storeentIdSelected=10051&treeInitType=1
)从上面的显示可以看出,后台会吧&后面当成当前action的参数,所以保存的url只会丢失部分数据。
既然知道了原理,为了解决这个问题,我们就需要在前段对&符号进行编码,现有的编码有escape,encodeUri,encodeUriComponent;
以上三种我都试过了,只有escape会对&进行编码,对url字段进行编码后:
/mgr/oms/catalog/catgroupMain.jsp?%25catalogId%3d10220%26storeentIdSelected%3D10051%26treeInitType=1;
这个是我前台处理的全部代码:var menuUrl = escape($("input[name='moduleBean.url']").val());
$("input[name='moduleBean.url']").val(menuUrl);
var data = $('#frmEditModule').serializeArray();
var url = $('#contextPath').val() + '/sysmgr/menu/module/save.action?modify='
+ $.data($('#frmEditModule')[0], 'modify');
$.post(url, data, submitCallback);
后台处理代码:String menuUrl = moduleBean.getUrl();
if(menuUrl != null){
menuUrl = URLDecoder.decode(menuUrl,"utf-8");
moduleBean.setUrl(menuUrl);
}
然后保存的就是我们需要的数据了。
- 传带有多个参数的URl串,&的编码问题
- URL ajax 传递带有特殊符号参数的问题
- URL ajax 传递带有特殊符号参数的问题
- 小程序中webview链接跳转?参数中带有多个参数的的问题
- 页面传参数中带有%的问题
- url参数以及url的编码解码
- JS,C#URL传递参数时的编码问题
- ajax请求中URL和参数的编码问题
- JSP使用URL编码传递中文参数问题的解决
- js获取url的多个参数
- thinkphp的url地址栏的参数错误并且带有%
- URL参数中带有特殊字符+,空格,/,?,%,#,&,=的处理
- js中URL中带有空格参数的处理方法
- python urllib获取带有中文参数url内容的方法
- apache重写带有get参数的url地址
- js url传参数编码问题
- 使用jquery获取url以及使用jquery获取url参数以及中文编码乱码的问题
- python的url编码问题
- 简单研究利用AV Foundation框架实现模仿微信语音录制和播放功能
- php实现JS的encodeURI和decodeURI
- Spring 3之MVC & Security简单整合开发(一)
- Unreal Engine 4切换默认Camera实现
- VNC 远程连接 CentOS桌面
- 传带有多个参数的URl串,&的编码问题
- 避免 DropDownList 指定無效的 SelectedValue
- ReflectionClass 类
- 浏览器状态码汇总
- 使用JavaScript进行进制转换
- 今天去搜外论坛看见了这篇很好的文章,朋友们可以读读
- 设计模式 - 状态模式 C++
- C/C++ 日常学习总结(第二十一篇)智能指针shared_ptr
- Backbone.js入门学习资源