Servlet无法从AJAX调用中检索参数

Java播放器

我使用AJAX调用操作并传递参数,AJAX调用从xsl页面发生,其操作如下:

xmlHttp.open("GET","examcont?action=AJAX_SectionsBySessionId&sessionId="+sessionId,true);

我决定将其放置在amp;后面,&因为xsl在删除它时会引发此错误:

The reference to entity "sessionId" must end with the ';' delimiter

问题是该操作无法读取该参数,sessionId但是我尝试了相同的操作URL,但没有使用amp;该操作,则该操作成功读取了参数

半位

问题似乎是样式表中的&表示&,但是&在输出过程被扩展/转义了(因为它是HTML / XML)。您可以尝试在XSL中使用以下内容来避免转义:

xmlHttp.open("GET","examcont?action=AJAX_SectionsBySessionId<xsl:text disable-output-escaping="yes">&amp;</xsl:text>sessionId="+sessionId,true);

但是,请注意-如果你碰巧让你的XSL在浏览器中运行-这确实不是工作,根据(虽然它是正确的XSL,它应该)在Firefox https://bugzilla.mozilla.org/show_bug.cgi?id = 98168

作为可移植的替代方案,您可以使用以下内容来避免提及&,方法是在运行时将其插入您可能称为“ JavaScript逸出”的位置:

xmlHttp.open("GET","examcont?action=AJAX_SectionsBySessionId"+String.fromCharCode(38)+"sessionId="+sessionId,true);

也可以通过使用xslt中的html实体(例如&nbsp;)进行更深入的讨论和其他选择,研究类似的问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章