為什麼這篇ajax中文鄉民發文收入到精華區:因為在ajax中文這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者arliang (arliang)看板Ajax標題[問題] jquery 的ajax如何傳中文值...
jQuery.ajax({
url: "http://"+serverIP+"/rcv/reg.do",
data: "method=executeAdd&queryCaseNo="+"中文喔",
dataType: 'xml',
contentType: "text/html; charset=big5",
error: function(xhr) {
$('errMsg').innerHTML = "Ajax request 發生錯誤";
alert('Ajax request 發生錯誤');
},
success: function(response) {
parserAddResult(response,'add');
location.href="#rcvDataHref";
}
});
其中contentType 我試過 big5 、 UTF-8、ISO8859-1
每次後端接到的中文都是亂碼
也爬過文,http://www.showfan.cn/share.php?pid=171
不想使用URL 編碼、也不想在struts後端做字碼轉換、
難道真的只能使用傳統的ajax嗎?
requester.open("POST","http://"+serverIP+"/rcv/reg.do",true);
requester.onreadystatechange=function() {getQueryResult("AddResult")};
requester.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
requester.send("method=executeAdd"+sendStr);
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.175.188
※ 編輯: arliang 來自: 59.120.175.188 (09/06 10:46)
前端網頁也是utf-8編碼,firefox。謝謝~
※ 編輯: arliang 來自: 59.120.175.188 (09/06 12:04)
以下是完整的code
var requester = null;
if(window.XMLHttpRequest) {
try {
requester = new XMLHttpRequest();
} catch(e) {
requester = null;
}
// branch for IE/Windows ActiveX version
} else if(window.ActiveXObject) {
try {
requester = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
requester = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
requester = null;
}
}
}
var serverIP = '<%=request.getServerName()+":"+
request.getServerPort()+
request.getContextPath() %>';
requester.open("POST","http://"+serverIP+"/rcv/reg.do",true);
requester.onreadystatechange =
parserAddResult(requester.responseXML,"add");
requester.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
requester.send("method=executeAdd&queryCaseNo="+"中文喔");
function parserAddResult(xmlDoc,actionType){
if (actionType == "add"){
......
}else if .........
}
謝謝~
※ 編輯: arliang 來自: 59.120.175.188 (09/06 14:56)
TonyQ 大大說對了
正解~感激不盡~
答案是POST與GET的差異造成中文傳到後端變亂碼
contenxt-type 可以不用加
至少FF 與 IE7 都試過了,
我先提供簡單的Code給各位參考
1. 第一種
jQuery.ajax({
type: 'POST',
dataType: 'xml',
url: "http://"+serverIP+"/rcv/reg.do",
data: "method=executeAdd&queryCaseNo=我是中文",
error: function(xhr) {
alert('Ajax request 發生錯誤');
},
success: function(response) {
alert('好棒喔');
}
});
url: "http://"+serverIP+"/rcv/reg.do",
data: "method=executeAdd&queryCaseNo=我是中文",
error: function(xhr) {
alert('Ajax request 發生錯誤');
},
success: function(response) {
alert('好棒喔');
}
});
2. 第二種
jQuery.post("http://"+serverIP+"/fcms/rcv/registration.do",
"method=executeAdd&queryCaseNo=我是中文",
function(response){
alert('好棒喔');
},
"xml"
);
※ 編輯: arliang 來自: 59.120.175.188 (09/07 11:35)