總所周知,直接傳數組給後端,很定是有問題的,辦法有三種:
1、如果你是使用jquery
那麼直接用$.param(str)就可以了
$(document).ready(function(){
personObj=new Object();
personObj.firstname="John";
personObj.lastname="Doe";
personObj.age=50;
personObj.eyecolor="blue";
$("button").click(function(){
$("div").text($.param(personObj));
});
});
2、如果你是用的非jQuery
那麼我們可以自己寫一個方法來實現類似於jquery.param()功能的代碼:
function isFunction(obj) {
return ({}).toString.call(obj) == '[object Function]'
}
function buildParams(prefix, obj, add) {
if (Array.isArray(obj)) {
obj.forEach(function(item) {
add(prefix, item)
})
} else {
add(prefix, obj)
}
}
function param(a) {
var prefix,
s = [],
add = function(key, value) {
value = isFunction(value) ? value() : (value == null ? '' : value)
s[s.length] = encodeURIComponent(key) + '=' + encodeURIComponent(value)
}
for (prefix in a) {
buildParams(prefix, a[prefix], add)
}
return s.join('&').replace(/%20/g, '+')
}
之後直接調用param()方法就可以了
3、如果後端需要直接把數組序列,直接就拼接爲字符串,
比如['name','age','address']的字符串需要拼接爲'name,age,address'這種情況
let List
let arr=new Array();
strArray.forEach(function (value, index) {
arr.push(value);
List=arr.join(",");
})
直接輸出list就完成了