Здравствуйте.
в java script ajax запросом методом POST отправляю JSON
var json=[{"FUNCTION_GROUP":"Футбол"},{"FUNCTION_GROUP":"Шахматы"},{"FUNCTION_GROUP":"Плавание"}];
$.ajax({
type: 'POST',
url: 'employees',
data: JSON.stringify(json),
success: function(data) {
console.log( "Данные зафиксированы успешно.");
},
error: function(data) {
console.log( "Отправка данных завершилась завершилась ошибкой: ");
},
contentType: "application/json",
dataType: 'json'
});
подробности отправки
Request URL:http://localhost:8000/employees
Request Method:POST
Status Code:200
Remote Address:[::1]:8000
Response Headers
view source
Content-Length:97
Date:Wed, 14 Jun 2017 18:19:20 GMT
Request Headers
view source
Accept:application/json, text/javascript, */*; q=0.01
Accept-Encoding:gzip, deflate, br
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:97
Content-Type:application/json
Host:localhost:8000
Origin:http://localhost:8000
Referer:http://localhost:8000/LoginUser
User-Agent:Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
X-Requested-With:XMLHttpRequest
Request Payload
view source
[{FUNCTION_GROUP: "Футбол"}, {FUNCTION_GROUP: "Шахматы"}, {FUNCTION_GROUP: "Плавание"}]
0
:
{FUNCTION_GROUP: "Футбол"}
1
:
{FUNCTION_GROUP: "Шахматы"}
2
:
{FUNCTION_GROUP: "Плавание"}
ниже код java servlet а который принимает POST запрос и обрабатывает JSON
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
StringBuilder sb = new StringBuilder();
BufferedReader br = request.getReader();
String str;
while( (str = br.readLine()) != null ){
sb.append(str);
}
try {
JSONObject jObj = new JSONObject(sb.toString());
} catch (JSONException e) {
e.printStackTrace();
}
System.out.println(sb.toString());
response.getWriter().append(sb.toString());
}
ajax данные постит, НО если посмотреть на результат responce в браузере, то кириллица становится абракадаброй
[{"FUNCTION_GROUP":"Ðарды"},{"FUNCTION_GROUP":"Шахматы"},{"FUNCTION_GROUP":"ОБЖ"}]
Как решить эту проблему?
p.s. пробовал в AJAX JSON дополнительно обернуть encodeURI(JSON.stringify(json))
НО в таком случае получаю исключение в сервлете о том, что JSON начинается не с {, подозреваю что кодировка после encodeURI не восстанавливается....