记录自己愚蠢的一次经历

问题描述

表单提交前需要对参数进行校验,并且需要使用Ajax提交表单,Ajax需要传输一个保存的session作用域中的值,百度后得知EL表达式是可以直接在内嵌式JavaScript脚本中直接使用的,所以在组装参数时直接使用EL表达式获取值,但是最后提示js函数未定义。

  1. 愚蠢的json拼装
data = {"id":${appDevices.id}};

调试

从始至终我都没想过问题出在json格式的组装上面,通过一步步的调试将问题定为到上述的一句话后,我猜想可能是此处不能使用EL表达式的原因,后来换种方式获取值便成功了。

原因

正常的json格式应该是{"id":"id"} 这样的,但是上述语句执行完成后会变成{"id":${xxxxx}} 这样,对比两种格式很明显地发现了问题,后面的${xxxxx}并不是一个串或者数字,则不能算是json格式的数据
于是js在执行到这句话时出错了,到时该语句所在的js函数为初始化完成,于是便报了开头所说的js函数未定义的问题。

解决方案

1.可以使用其他的方式获取值,比如使用隐藏表单域
2.将{"id":${xxxxx}} 改成{"id":"${xxxxx}"}

反省

最后发现问题的时候被同事各种嘲讽,谨以此文记录自己所犯的愚蠢之极的问题,告诫自己下次不要在犯。

ps:如果看文的亲也和我一样,请记住,对自己下手轻一点,不说了,我先去上点药了啊

你可能感兴趣的:(愚蠢)