Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在$(“textbox”).val()调用之前解码文本?_Jquery_Textbox_Decode_Encode - Fatal编程技术网

Jquery 在$(“textbox”).val()调用之前解码文本?

Jquery 在$(“textbox”).val()调用之前解码文本?,jquery,textbox,decode,encode,Jquery,Textbox,Decode,Encode,我的网页对服务器进行AJAX调用,并在浏览器中显示结果。结果的内容通常包含用户在AJAX请求中提交的文本字符串的一部分。因此,如果用户在其查询中键入,则返回的输出也可能包含短语。但是,服务器在发送响应之前对其进行编码,因此返回的短语实际上将作为script 这一切都很好。脚本漏洞被删除,浏览器在显示响应时正确显示 问题是当我想要获取返回值并将其填充到文本框中时。考虑: $(“#someTextBox”).val(“<script>”); 文本框的内容以编码形式(即脚

我的网页对服务器进行AJAX调用,并在浏览器中显示结果。结果的内容通常包含用户在AJAX请求中提交的文本字符串的一部分。因此,如果用户在其查询中键入
,则返回的输出也可能包含短语
。但是,服务器在发送响应之前对其进行编码,因此返回的短语实际上将作为
script

这一切都很好。脚本漏洞被删除,浏览器在显示响应时正确显示

问题是当我想要获取返回值并将其填充到文本框中时。考虑:

$(“#someTextBox”).val(“<script>”);
文本框的内容以编码形式(即
脚本
)显示,而不是以解码形式(即
)显示

问题:

[1] 在调用val()之前,如何解码该值


[2] 我这样做是否引入了安全漏洞?

很可能是一种更直接的方法,但似乎得到了预期的结果


这里有更多信息(我从中得到了概念)

您可以使用“替换”将HTML实体更改为“”。只要您只使用文本框中的字符串,就不会引入漏洞。如果您将其放入div或输入框以外的任何内容中,标签将被暴露。

谢谢。可以使用以下代码应用您的解决方案:
return$(“”).html(encodedText.text()
块会触发该脚本的执行——尽管时态
甚至没有连接到DOM。啊,是的,-这是有意义的。有意义的——尽管这样我不仅要替换尖括号,还要替换其他所有可转义字符(如报价等)