Schlechte Codierung, wenn wieder ein string mit Spring MVC & ajax
Ich habe eine web-Seite, die fordert, dass ein Hebräisch-string mit Ajax aber der string zurückgegeben wird, wie '??????'
Komisch ist, dass beim einfügen, die dieselbe Zeichenfolge auf der Seite mit der JSTL und nicht Ajax, wird es richtig angezeigt...
In meiner web-Seite ich bin deklarieren
<%@ page contentType="text/html" pageEncoding="UTF-8"%>
Dass mein controller:
@RequestMapping("get_label")
public @ResponseBody String getLabel()
{
String str = "בדיקה";
return str;
}
Und mein ajax-request:
$.ajax({
url: "get_label",
success: function(result)
{
alert(result);
$("#parameter_select label").text(result);
}
});
Irgendwelche Ideen, was mache ich hier falsch?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies geschieht, weil AJAX-aufrufen standardmäßig verwenden browser als Standard-encoding (f.e. ANSI). Für das überschreiben dieser Sie tun müssen:
jQuery Stil - mimeType:
Vanilla JS Stil:
Aber von der anderen Seite, müssen Sie sicher sein, dass der server gibt auch entsprechende Antwort. Für diese müssen Sie Folgendes überprüfen:
Für diese können Sie entweder über expliziten Aufruf der Methode:
Oder, das scheint zu sein, mehr bevorzugt für
@ResponseBody
und Spring 3.1+:Als Fazit möchte ich klarstellen, dass für die korrekte Handhabung von AJAX-Aufrufe mit UTF-8-Codierung, müssen Sie sicherstellen, dass:
mimeType