在使用$.post進(jìn)行json數(shù)據(jù)傳輸時,有時會遇到j(luò)son長度超過限制的問題。
一般情況下,瀏覽器所支持的url長度為2048個字符,當(dāng)請求的json數(shù)據(jù)過大,超過了url長度限制時,$.post會默認(rèn)轉(zhuǎn)化為get請求,導(dǎo)致數(shù)據(jù)傳輸失敗。
解決這個問題可以通過以下兩種方式:
1. 將json數(shù)據(jù)轉(zhuǎn)化為字符串,再進(jìn)行傳輸。
var obj = {key1: value1, key2: value2, ....};
var jsonData = JSON.stringify(obj);
$.post(url, jsonData, function(data){
// ...
});
2. 使用$.ajax代替$.post,手動設(shè)置傳輸方式以及contentType。
$.ajax({
type: "post",
url: url,
data: JSON.stringify(obj),
contentType:'application/json;charset=utf-8',
success:function(data){
// ...
}
});
以上兩種方式均可解決json數(shù)據(jù)傳輸過大的問題,根據(jù)實際情況選擇合適的方式即可。