Sto lavorando con Spring e provo a effettuare una chiamata ajax a @ResponseBody nel mio controller.Spring: la chiamata Ajax alla codifica del parametro @ResponseBody non riesce in IE
UPDATE
Va bene, ho aggiunto i cambiamenti mi hanno detto di alle mie impostazioni ajax. Il mio parametro "jtSearchParam" ha ancora lo stesso problema di codifica in IE. + Ho ricevuto un altro errore, 406, l'intestazione della risposta ha il tipo di contenuto sbagliato.
Ecco il mio nuovo codice
Controller:
@RequestMapping(method = RequestMethod.POST, consumes="application/json; charset=utf-8", produces="application/json; charset=utf-8")
public @ResponseBody JSONObject getUsers(@RequestParam int jtStartIndex, @RequestParam int jtPageSize,
@RequestParam String jtSorting, @RequestParam String jtSearchParam,
HttpServletRequest request, HttpServletResponse response) throws JSONException{
Gson gson = new GsonBuilder()
.setExclusionStrategies(new UserExclusionStrategy())
.create();
List<User> users = userService.findUsers(jtStartIndex ,jtPageSize, jtSorting, jtSearchParam);
Type userListType = new TypeToken<List<User>>() {}.getType();
String usersJsonString = gson.toJson(users, userListType);
int totalRecordCount = userDao.getAmountOfRows(jtSearchParam);
usersJsonString = "{\"Message\":null,\"Result\":\"OK\",\"Records\":" + usersJsonString + ",\"TotalRecordCount\":" + totalRecordCount + "}";
JSONObject usersJsonObject = new JSONObject(usersJsonString);
return usersJsonObject;
}
Quindi, come vedete ho impostato il tipo di contenuto in produces
ma che non aiuta. Se metto a punto l'intestazione di risposta che assomiglia a questo: (che provoca un 406 Non accettabile dal browser)
E le mie nuove impostazioni Ajax:
...
headers: {
Accept : "application/json; charset=utf-8",
"Content-Type": "application/json; charset=utf-8"
},
contentType: "application/json; charset=utf-8",
mimeType:"application/json; charset=UTF-8",
cache:false,
type: 'POST',
dataType: 'json'
...
E i miei parametri sembra ancora lo stesso in IE!
la jsp su cui viene eseguito questo codice ha una direttiva che imposta una codifica diversa per la pagina? – Akshay
@AkshaySinghal no è impostato come globale: '<% @ page pageEncoding =" UTF-8 "%>' –
perché stai continuando a mettere il doppio qout su ogni proprietà nell'oggetto json? !! –