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),将里面的/转义,就可以修复这个问题。

  • 相关阅读:
    leetcode Move Zeroes
    leetcode Same Tree
    leetcode range sum query
    leetcode Invert Binary Tree
    leetcode【sql】 Delete Duplicate Emails
    mac编译PHP报错 configure: error: Please reinstall the libcurl distribution
    Linux添加系统环境变量的两种方法
    Mysql获取去重后的总数
    MySQL查询order by相减select相减的Sql语句
    修改maven本地仓库路径
  • 原文地址:https://www.cnblogs.com/prayol/p/6694945.html
Copyright © 2011-2022 走看看