Open bestsamsg opened 3 weeks ago
以下代码判断PostData的方式错误,最终会走到utils.isObject(data)的代码块中,看微信prebundle代码中,实际上PostData的构造函数名已经变为PostData2
function transformRequest(data, headers) { normalizeHeaderName(headers, 'Accept'); normalizeHeaderName(headers, 'Content-Type'); if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data) || // 放行 PostData (data !== null && typeof data === 'object' && data.toString() === '[object PostData]') ) { return data; } if (utils.isArrayBufferView(data)) { return data.buffer; } if (utils.isURLSearchParams(data)) { setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8'); return data.toString(); } if (utils.isObject(data)) { setContentTypeIfUnset(headers, 'application/json;charset=utf-8'); return JSON.stringify(data); } return data; }
以下为prebundle中的代码
var PostData = function() { function PostData2(postData) {//此行,构造函数名已经变成PostData2 _classCallCheck(this, PostData2); this.postData = postData; } _createClass(PostData2, [ { key: "getParsedPostData", value: function getParsedPostData() { var postData = this.postData; var parsedPostData = { normalData: {}, fileData: {} }; if (isObject$1(postData)) { Object.keys(postData).forEach(function(key) { if (postData[key] && postData[key] instanceof FileData) { parsedPostData.fileData[key] = postData[key].getFileContent(); } else { parsedPostData.normalData[key] = postData[key]; } }); } return parsedPostData; } }, { key: "toString", value: function toString3() { return "[object ".concat(PostData2.name, "]"); } } ]); return PostData2; }();
建议使用instanceOf的方式判断类型
(data !== null && typeof data === 'object' && (data instanceof PostData))
以下代码判断PostData的方式错误,最终会走到utils.isObject(data)的代码块中,看微信prebundle代码中,实际上PostData的构造函数名已经变为PostData2
以下为prebundle中的代码
建议使用instanceOf的方式判断类型