我生气了这个:
使用JDK 1.7的Tomcat 5.5,JRE 1.6(合规级别)
头:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> ... <!DOCTYPE html> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <script src="js/jquery-ui/jquery-1.9.0.js"></script>Json请求:
params = $("#formList").serializeArray(); $.getJSON(url, params, function(data) {...});当我传递一个ñ到alias参数时,在我的localhost机器上(win)工作正常,但是在生产服务器(linux)中我得到了param或类似的双重编码:
WebBrowserRequest(对localhost和生产的请求相同):
userList.action?pagination.currentPage = 1&pagination.sortColumn =&pagination.sortColumnOrder =& user.alias =%C3%B1 &user.email =&selectedRole = -1&selectedCountry = -1&selectedTown = -1&selectedLanguage = -1&selectedUserEnabled = 0&__ multiselect_selectedCategories =&jsonRequest = true&back = false
服务器端url输出(localhost):
userList.action?pagination.currentPage = 1&jsonRequest = true&user.email =&selectedLanguage = -1&selectedTown = -1&selectedCountry = -1&pagination.sortColumn =&selectedRole = -1&back = false& user.alias =ñ &selectedUserEnabled = 0&pagination.sortColumnOrder =&__ multiselect_selectedCategories =
服务器端url输出(生产):
userList.action?jsonRequest = true&selectedTown = -1&pagination.sortColumn =& user.alias =± &back = false&pagination.sortColumnOrder =&pagination.currentPage = 1&user.email =&selectedLanguage = -1&selectedCountry = -1&selectedRole = -1&selectedUserEnabled = 0&__ multiselect_selectedCategories =
I'm getting mad with this:
Tomcat 5.5, JRE 1.6 (compliance level) using JDK 1.7
Headers:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> ... <!DOCTYPE html> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <script src="js/jquery-ui/jquery-1.9.0.js"></script>Json request:
params = $("#formList").serializeArray(); $.getJSON(url, params, function(data) {...});When I pass an ñ to alias parameter, on my localhost machine (win) is workin ok, but in production server (linux) I'm getting a double encoding for param or something similar:
WebBrowserRequest (same request for localhost & production):
userList.action?pagination.currentPage=1&pagination.sortColumn=&pagination.sortColumnOrder=&user.alias=%C3%B1&user.email=&selectedRole=-1&selectedCountry=-1&selectedTown=-1&selectedLanguage=-1&selectedUserEnabled=0&__multiselect_selectedCategories=&jsonRequest=true&back=false
Server-side url output (localhost):
userList.action?pagination.currentPage=1&jsonRequest=true&user.email=&selectedLanguage=-1&selectedTown=-1&selectedCountry=-1&pagination.sortColumn=&selectedRole=-1&back=false&user.alias=ñ&selectedUserEnabled=0&pagination.sortColumnOrder=&__multiselect_selectedCategories=
Server-side url output (production):
userList.action?jsonRequest=true&selectedTown=-1&pagination.sortColumn=&user.alias=ñ&back=false&pagination.sortColumnOrder=&pagination.currentPage=1&user.email=&selectedLanguage=-1&selectedCountry=-1&selectedRole=-1&selectedUserEnabled=0&__multiselect_selectedCategories=
最满意答案
最后通过$ .ajax(POST)解决了更改getJSON(GET)请求的问题:
的getJSON:
$.getJSON(url, params, function(data) { showData(data); }).error(function(data) { showFail(data); });AJAX:
$.ajax({ type: "POST", url: url, data: params }).done(function( data ) { showData(data,page); }).fail(function(jqXHR, textStatus) { showFail(jqXHR, textStatus); });Finally solved changing the getJSON (GET) request by $.ajax (POST):
getJson:
$.getJSON(url, params, function(data) { showData(data); }).error(function(data) { showFail(data); });ajax:
$.ajax({ type: "POST", url: url, data: params }).done(function( data ) { showData(data,page); }).fail(function(jqXHR, textStatus) { showFail(jqXHR, textStatus); });更多推荐
发布评论