我有 test.jsp
<script>
var name="<%=testName %>";
</script>
"testName"
全局声明变量并且它具有价值"javascript:alert("hi");"
在评估包含双引号的值时,它会给出未终止的字符串错误。我尝试了逃跑。java端编码/解码,但仍有分配问题。在 javascript 或 jquery 中会有什么方法?
我有 test.jsp
<script>
var name="<%=testName %>";
</script>
"testName"
全局声明变量并且它具有价值"javascript:alert("hi");"
在评估包含双引号的值时,它会给出未终止的字符串错误。我尝试了逃跑。java端编码/解码,但仍有分配问题。在 javascript 或 jquery 中会有什么方法?
您可以通过它转义引号/字符prepending \
:
在 JSP 中
<script>
var name="<%=testName.replace('"','\"') %>";
</script>
或在 JS
alert(variabl.replace(/"/g, '\\"'));
简单地尝试
<script>
var name=<%=new Gson().toJson(testName)%>;
</script>
在将其传递到前端之前,我会从后端的字符串中删除所有引号。
但是,如果您需要在字符串中保留引号,则应在后端对它们进行转义。
因此,如果前端使用单引号将字符串括起来,则必须在后端转义单引号。
String myString = "my string\\'s test";
在前端,它将最终成为
var text = 'my string\' test';