【问题标题】:Passing html code from servlet to ajax through JSON通过 JSON 将 html 代码从 servlet 传递到 ajax
【发布时间】:2014-02-05 16:06:29
【问题描述】:

我想将一些 html 代码放入 Java servlet 中的 JSONObject 并使用 ajax 发送到客户端,这是我的 html 代码,我想将其放入名为“resultado”的字符串变量中(转义 html 字符):

resultado += "<a href=\"javascript:void(0);\">" + stringValue + "</a>";

这是我通过名为“resultado”的变量将 html 代码放入 JsonObject(在我的 servlet 中)的方式:

response.setContentType("text/html; charset=windows-1252");
PrintWriter out = response.getWriter();
jsonGeneral.put("error", 0);
jsonGeneral.put("contenido", resultado);
out.print(jsonGeneral.toString());
out.close(); 

然后,$ajax() 函数的“error”属性显示下一句(浏览器控制台):

SyntaxError: illegal character
<a href="\&quot;javascript:void(0);\&quot;">abc123...

这似乎是 html 转义不正确。

jsonGeneral 是一个 JsonObject JSONObject jsonGeneral = new JSONObject();

这是我的代码客户端:

$('#cargaDocumentoForm').ajaxForm({
  dataType: 'json',
  beforeSubmit: ShowRequest,
  success: SubmitSuccesful,
  error: function (xhr, status, error){
  var err = eval("(" + xhr.responseText + ")"); 
    console.log("err: " + err.Message);        
  }

【问题讨论】:

  • 你为什么对你的Content-Type撒谎?
  • @SLaks 他在哪里做的?
  • @whowantsakookie: setContentType("text/html
  • 另外,jsonGeneral 是什么,你的客户端代码是什么?
  • @SLaks 哦,我以为您出于某种原因在谈论用户代理。我的错。

标签: java ajax json servlets


【解决方案1】:

当我过去需要传递 XML 或类似内容时,我们对字符串使用 base-64 或 URL 编码来避免任何需要担心字符转义的问题。

从 Java 的角度来看,以下可能是有用的(代码太多且观点变化太大,因此值得我选择一个,因为有人会抱怨): Decode Base64 data in Java

我没有研究过 Ajax,但在某处会有示例。

【讨论】:

  • 你能和我分享一些我可以使用 base-64 或 url 编码的代码吗?
  • 已编辑以包含链接
  • 我明白了!我所需要的只是将 html 代码添加到我在响应时间创建的包装标签中: var message = $("

    ").html(responseText.contenido).text(); $('#estado_upload').html(消息);其中“消息”是一个 var,我从 servlet(我的 JSON 包括我的问题中指定的 html 代码)获得响应,其中包含在 &lt;p/&gt; 标签中,它可以是任何标签(&lt;div/&gt;&lt;br/&gt;,但是)。
  • 感谢您的回答!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-03
  • 2023-03-17
  • 2014-04-09
  • 2014-06-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多