Jquery Ajax 異步訪問後臺(解決url亂碼)

代碼在JQuery01中

Jquery之前沒怎麼嘗試過,這次來試下

/**
 * 頁面裝載完成時的方法
 */
$(document).ready(function() {
	alert("finish");
	// Jquery 先通過$找到某個元素,然後添加事件
	$("#velidateButton").click(function() {
		var userName = $("#userName").val();
		if (userName.length == 0 || userName == "") {
			alert("請先填寫用戶名");
		} else {
			// 發送到服務器端
			$.get("UserVelidateServlet?userName=" + encodeURI(encodeURI(userName)), null, function(
							response) {
						// 接受服務器端返回的參數,將文本數據添加到div中,response是文本類型的數據
						$("#result").html(response);
					});
		}

	});

	$("#userName").keyup(function() {
		//獲取當前文本框中的內容
		var value = $(this).val();
		if(value.length == 0 || value == ""){
			//讓邊框爲紅色,並且帶背景圖
			$("#userName").addClass("userText");
		}else{
			//去掉邊框和背景圖
			$("#userName").removeClass("userText");
		}
	});

});
在傳參時候將userName進行兩次encodeURI編碼
encodeURI(encodeURI(userName))
String userName = request.getParameter("userName");
userName = java.net.URLDecoder.decode(userName, "utf-8");
在服務器端用URLDecoder.decode進行轉碼,在後臺輸出爲中文,沒問題

但是傳到前臺又會變成亂碼

response.setContentType("text/html; charset=utf-8");
PrintWriter out = response.getWriter();
需要在獲取PrintWriter前對response設置編碼格式

這時候就ok了....



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章