zoukankan      html  css  js  c++  java
  • 地址栏特殊字符参数转义

    我是搬运工,参照文章:http://www.cnblogs.com/artwl/archive/2012/03/07/2382848.html

    相关的转义功能如何实现可以参照上面的文章,这里我主要论述发现问题的过程。

    根据测试的反馈,相关图片上传功能有时失败有时候成功。代码如下:

    var url = location.href.substring(0, location.href.lastIndexOf("/"));
                var params = {
                    uploadServerUrl: url.substring(0, url.lastIndexOf("/")) + "/blyj/TravelUpload.aspx?tid=" + id, //上传响应页面(必须设置)
                    uploadBytesServerUrl: url.substring(0, url.lastIndexOf("/")) + "/blyj/TravelUpload.aspx?tid=" + id,
                    imageWidth: 1024,             //设置图片缩放宽度
                    minFileSize: 400,             //最小图片大小KB
                    imageQuality: 80,
                    jsFunction: "upload",         //上传成功后回调JS
                    filter: "*.jpg;*.png;*.bmp;*.jpeg",         //上传文件类型限制
                    userId: '<%=userId %>',
                    travelDate: '<%=travelDate %>'
                }
                //alert(params["uploadServerUrl"]);
                swfobject.embedSWF("../js/flashUpload/uploadImage.swf", "myContent", "100%", "500", "10.0.0", "../js/flashUpload/expressInstall.swf", params);

    通过重现和查阅代码发现,失败的都是在url中带了日期参数,用fiddler拦截请求,发现传递的url变成了

    POST /WebJourneyShow/blyj/TravelUploadImg.aspx?travelDate=2017/blyj/TravelUpload.aspx?tid=5036&userId=7&travelDate=2017/3/31%200:00:00&random=0.6985774147324264&gpsSuccess=false&dateTimeSucess=false&dateTime=null&editTimeSucess=true&editTime=2017-03-31%2014:42:27&lon=undefined&lat=undefined&fileName=2%E5%8F%96%E5%90%8D%E9%A1%B5.jpg HTTP/1.1

    地址出错,导致响应界面无法做出正常处理。分析可知,如果上述代码中的location.href是:/WebJourneyShow/blyj/TravelUploadImg.aspx?travelDate=2017/3/31,通过substring(0, location.href.lastIndexOf("/"))就会截取为/WebJourneyShow/blyj/TravelUploadImg.aspx?travelDate=2017/3/而不是我们希望的/WebJourneyShow/blyj,加上 其他参数就会变成上面错误的url导致出错。

    在这里,我做的处理仅仅时将date转义,也就是encodeURIComponent(date),将里面的/转义,就可以修复这个问题。

  • 相关阅读:
    java插入语句中有单引号的处理
    mybatis批量插入
    用Resttemple从数据接口中取出数据
    java1.8Stream流式算法
    rabbitmq启动命令
    【MySQL】Mysql模糊查询like提速优化
    Mybatis基础知识点:trim标签的使用
    java8 array、list操作 汇【20】)- (FlatMap)用法汇总
    编写一个定制的收集器
    mysql
  • 原文地址:https://www.cnblogs.com/prayol/p/6694945.html
Copyright © 2011-2022 走看看