例子
<!DOCTYPE html>
<html>
<head>
<script src="js/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$("button").click(function(){
$.post("demo_test_post.asp",
{
name:"Donald Duck",
city:"Duckburg"
},
function(data,status){
alert("Data: " + data + "\nStatus: " + status);
});
});
});
</script>
</head>
<body>
<button>發送POST資料並擷取返回結果</button>
</body>
</html>
ajax post提交資料亂碼
firefox下測試都正常,chrome和ie核心下都是有此問題,
此問題設定了頁面屬性為utf-8時候,只有firefox是傳的charset=utf-8的標頭檔
chrome和ie都沒有指定,所以出現亂碼問題.
解決方案:
$.ajaxSetup({
contentType: "application/x-www-form-urlencoded; charset=utf-8"
});
$.post("test.php", { name: "i5a6", time: "2pm" },
function(data){
process(data);
}, "json");
或者使用:
$.ajax({
url:url,
type:"POST",
data:data,
contentType:"application/x-www-form-urlencoded; charset=utf-8",
dataType:"json",
success: function(){
...
}
})
總結一句:ajax亂碼就是中文問題了,只要把頁面編輯轉成uft8 就可以了,通常可以使用contentType:來定義類型了,當然在接受時也可以使用轉換函式來操作