工作日记day28-29(修复正式环境bug,痛苦又快乐)

22 篇文章 0 订阅
21 篇文章 0 订阅

day28

请假,喜获两个bug

day29

BUG1

修改密码出现%会转义(具体参考day27)

方法1:

ajax中post的escape对有些特殊字符无法转换,例如:+ % &号,因此需要对其进行转义。

如果不然,Http传输就会丢失这个字符,这个时候必须将“+”手动转成 “%2B”,同时需要手动转的字符还有“&”->“%26”,“%”->“%25”等。
	if (password != null && password != "")
{
    password=password.replace(/\+/g, "%2B");
    password=password.replace(/&/g, "%26");
}
if (username != null && username != "")
{
    username=username.replace(/\+/g, "%2B");
    username=username.replace(/\&/g, "%26");        
}

注:+ 是正则表达式的元字符,需要用 \ 转义;& 可以不用转义。
或者对特殊字符串进行转码
encodeURIComponent(yj)

方法2

使用Ajax传送数据时,当数据中存在加号(+)、连接符(&)或者百分号(%)时,服务器端接收数据时会丢失数据。
分析Ajax传送数据的格式与Javascript的语法:

1. "+"号:JavaScript解析为字符串连接符,所以服务器端接收数据时"+"会丢失变空格。
2. "&"号:JavaScript解析为变量连接符,所以服务器端接收数据时&符号以后的数据都会丢失变空格。

解决方法是通过正则表达式进行编码替换(假设postStr是你想通过ajax传送的数据字符串)

postStr = postStr.replace(/%/g, "%25");
postStr = postStr.replace(/\&/g, "%26");
postStr = postStr.replace(/\+/g, "%2B");

破案:龙哥牛逼~

破案代码如下:

var old = inputForm.find("#oldPassword").val()
var newpsw = inputForm.find("#newPassword").val()
// var newpsw2 = newpsw.replace(/%/g, “%25”);
fetch("${ctx}/sys/user/savePwd",{
method:‘post’,
body:JSON.stringify({
oldPassword:old,
newPassword:newpsw
}),
headers: new Headers({
‘Content-Type’: ‘application/json’
})
}).then(res=>res.json()).then(res=>{
console.log(‘密码修改成功:’,res)
jp.success(‘密码修改成功’);
jp.close(index);//关闭dialog
})
在这里插入图片描述
在这里插入图片描述
相关资料
在这里插入图片描述

BUG2

点击出现空白页面并报错Uncaught SyntaxError: missing ) after argument list
解决方案
这个错误就是你的js写的" "有问题。拼接的字符串的方式错误

方法1

html2 = html2 + “加入购物车”;
正解:相应位置加上转义字符"代表是双引号,如果传入一个参数
html2 = html2 + “加入购物车”;

方法2

cont.html(’

’);
改为
cont.html(’<p class=“subSecName” οnclick=“toSection(’+ssid+’);”>’);试试

方法3

onclick方法的地方出错了
出错的原内容是
播放
更正后, 传参时加引号即可
播放

方法4

.$(’#menus’).append("

  • " + value.ImageName + “
  • ”);
    主要是双引号和单引号的嵌套使用
    测试一、测试解决方案时,试着在value.ImageUrl处添加单引号(如下)
    $(’#menus’).append("
  • <a href=‘javascript:void(0)’ οnclick=‘showCompareImage(’" + value.ImageUrl + “’)’>” + value.ImageName + “
  • ”);
    结果出现“unexpected }”的错误
    测试二、将最外面的双引号和内部的单引号,全部互换,如下
    $(’#menus’).append(’
  • <a href=“javascript:void(0)” οnclick=“showCompareImage(”’ + value.ImageUrl + ‘)">’ + value.ImageName + ‘
  • ’);
    发现错误任然存在。
    查找解决方案后,使用转义符将双引号进行转义,解决问题,最终代码如下:
    $(’#menus’).append("
  • " + value.ImageName + “
  • ”);

    破案,就是数据问题,有一条数据多了一个’号。痛苦啊

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值