![](/img/trans.png)
[英]jQuery.ajax emulating POST file upload, not sending UTF-8 content
[英]jQuery.ajax to an html file with utf-8
我正在尝试使用jQuery.ajax()
将字符串传递给我的控制器。 它完成了他的工作,但是当我收到某个String(由用户提供)时,它的编码错误,例如,有一个Ã而不是á 。
当我从表单中获取String时,它仍然可以,直到使用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.");
}
});
}
这是我控制器中的函数,该函数接收String并发送电子邮件。
@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中正确设置的参数,但事实并非如此。
关于什么是错误的任何建议?
您应该对数据进行编码,例如:
params["idConflicto"] = encodeURIComponent(idConflicto);
应该为您的所有参数完成此操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.