diff --git a/src/core/helpers/protocol/network/request.js b/src/core/helpers/protocol/network/request.js index 0d2c7021699e8da4a69427b51a301c8666af0b39..76286be30762d3e2de11e8a5016a3c77e8e0c370 100644 --- a/src/core/helpers/protocol/network/request.js +++ b/src/core/helpers/protocol/network/request.js @@ -1,4 +1,5 @@ import { + hasOwn, isPlainObject } from 'uni-shared' @@ -35,12 +36,14 @@ function stringifyQuery (url, data) { query[item[0]] = item[1] }) for (let key in data) { - if (data.hasOwnProperty(key)) { - if (isPlainObject(data[key])) { - query[encode(key)] = encode(JSON.stringify(data[key])) - } else { - query[encode(key)] = encode(data[key]) + if (hasOwn(data, key)) { + let v = data[key] + if (typeof v === 'undefined' || v === null) { + v = '' + } else if (isPlainObject(v)) { + v = JSON.stringify(v) } + query[encode(key)] = encode(v) } } query = Object.keys(query).map(item => `${item}=${query[item]}`).join('&') @@ -98,4 +101,4 @@ export const request = { params.responseType = Object.values(responseType).indexOf(value) < 0 ? responseType.TEXT : value } } -} +}