[問題] [已解決] 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)
→
09/06 10:46, , 1F
09/06 10:46, 1F
→
09/06 10:46, , 2F
09/06 10:46, 2F
→
09/06 10:46, , 3F
09/06 10:46, 3F
→
09/06 10:46, , 4F
09/06 10:46, 4F
我後來改用傳統的ajax,就會是正常中文,後端sever是UTF-8編碼、jdk 1.5、tomcat
前端網頁也是utf-8編碼,firefox。謝謝~
※ 編輯: arliang 來自: 59.120.175.188 (09/06 12:04)
→
09/06 14:31, , 5F
09/06 14:31, 5F
文末的code 就是傳統的ajax,但是內容有省略
以下是完整的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)
推
09/06 18:59, , 6F
09/06 18:59, 6F
→
09/06 19:03, , 7F
09/06 19:03, 7F
→
09/06 19:04, , 8F
09/06 19:04, 8F
→
09/06 19:04, , 9F
09/06 19:04, 9F
→
09/06 19:05, , 10F
09/06 19:05, 10F
→
09/06 19:05, , 11F
09/06 19:05, 11F
→
09/06 19:05, , 12F
09/06 19:05, 12F
→
09/06 19:05, , 13F
09/06 19:05, 13F
推
09/07 10:00, , 14F
09/07 10:00, 14F
→
09/07 10:59, , 15F
09/07 10:59, 15F
→
09/07 11:00, , 16F
09/07 11:00, 16F
→
09/07 11:00, , 17F
09/07 11:00, 17F
→
09/07 11:00, , 18F
09/07 11:00, 18F
→
09/07 11:00, , 19F
09/07 11:00, 19F
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)
推
09/13 12:31, , 20F
09/13 12:31, 20F
→
09/13 23:02, , 21F
09/13 23:02, 21F
→
09/13 23:02, , 22F
09/13 23:02, 22F
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章