From 01fc8bbca01ba8a904047bcc68f2958135e37852 Mon Sep 17 00:00:00 2001 From: carsonxu <459452372@qq.com> Date: Tue, 29 Aug 2017 21:52:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Djson=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/request.js | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/lib/request.js b/lib/request.js index 8d4b248..a826890 100644 --- a/lib/request.js +++ b/lib/request.js @@ -4107,25 +4107,6 @@ var request = function (options, callback) { options.type = options.method; delete options.method; - // headers - if (options.headers) { - var headers = options.headers; - delete options.headers; - options.beforeSend = function (xhr) { - for (var key in headers) { - if (headers.hasOwnProperty(key) && - key.toLowerCase() !== 'content-length' && - key.toLowerCase() !== 'user-agent' && - key.toLowerCase() !== 'origin' && - key.toLowerCase() !== 'host') { - xhr.setRequestHeader(key, headers[key]); - } - } - }; - } else { - options.headers = {}; - } - // progress if (options.onProgress) { options.progress = options.onProgress; @@ -4143,8 +4124,10 @@ var request = function (options, callback) { // json if (options.json) { - options.data = JSON.stringify(options.json); + options.data = options.body; delete options.json; + delete options.body; + !options.headers && (options.headers = {}); options.headers['Content-Type'] = 'application/json'; } @@ -4156,6 +4139,23 @@ var request = function (options, callback) { } } + // headers + if (options.headers) { + var headers = options.headers; + delete options.headers; + options.beforeSend = function (xhr) { + for (var key in headers) { + if (headers.hasOwnProperty(key) && + key.toLowerCase() !== 'content-length' && + key.toLowerCase() !== 'user-agent' && + key.toLowerCase() !== 'origin' && + key.toLowerCase() !== 'host') { + xhr.setRequestHeader(key, headers[key]); + } + } + }; + } + var getResponse = function (xhr) { var headers = {}; xhr.getAllResponseHeaders().trim().split('\n').forEach(function (item) {