【问题标题】:jQuery.ajax to an html file with utf-8jQuery.ajax 到带有 utf-8 的 html 文件
【发布时间】:2018-03-03 22:00:28
【问题描述】:

我正在尝试使用jQuery.ajax() 将字符串传递给我的控制器。它完成了他的工作,但是当我收到某个字符串(由用户提供)时,它的编码错误,例如,它有一个 Ã 而不是 á

当我从表单中获取字符串时它仍然可以,直到我使用 jQuery 将它发送到控制器。

这是我正在使用的 JS 函数:

function sendMail(accion, idConflicto, idIncidencia, idUsuario, dia){
    var params = {};
    params["accion"] = "enviar_mail";
    params["idConflicto"] = idConflicto;
    params["idIncidencia"] = idIncidencia;
    params["idUsuario"] = idUsuario;
    params["dia"] = dia;
    params["mensaje"] = jQuery('#idCuerpoCorreo').val();

    jQuery.ajax({
        url: "recargarConflicto.html",
        dataType: "html",
        data: params,
        cache: false,
        async: false,
        success: function(model) {
            jQuery('#dialog-notificar-usuario').dialog('close');
            dialogMensaje_abrir("Correo electrónico enviado correctamente.");
        },
        error: function() {
            dialogMensaje_abrir("Error al enviar el correo.");
        }
    }); 
}

这是我的控制器中接收字符串并发送电子邮件的函数。

@RequestMapping(value = URI_RECARGAR_CONFLICTO)
public ModelAndView recargarConflictoModificado(@RequestParam(value = "accion") final String accion,
        @RequestParam(value = "idConflicto") final Long idConflicto,
        @RequestParam(value = "idIncidencia") final Long idIncidencia,
        @RequestParam(value = "idUsuario") final Long idUsuario,
        @RequestParam(value = "dia") @DateTimeFormat(pattern = "dd/MM/yyyy") final Date dia,
        @RequestParam(value = "mensaje") final String mensaje) {

    final ModelAndView mv = new ModelAndView(getFormView());

    if(ACCION_ENVIAR_MAIL.equals(accion)){
        enviarMail(idUsuario, mensaje);
    }
.
.
.

private void enviarMail(Long idUsuario, String cuerpo){
    String dni = personalService.findById(idUsuario).getDocIdent();
    String email = personalWlfService.findByNIF(dni).getEmail();
    String asunto = "[TRAMA] Anomalía en los marcajes";

    correoHelper.enviaEmail(email, asunto, cuerpo, null);

}

参数“cuerpo”在 utf-8 中应该是正确的,但它不是。

对可能出现的问题有什么建议吗?

【问题讨论】:

    标签: javascript jquery ajax utf-8


    【解决方案1】:

    您应该对数据进行编码,例如:

    params["idConflicto"] = encodeURIComponent(idConflicto);
    

    这应该为你的所有参数完成。

    【讨论】:

      猜你喜欢
      • 2017-09-05
      • 1970-01-01
      • 2012-04-20
      • 2018-01-30
      • 2013-06-04
      • 1970-01-01
      • 2012-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多