From c2c8d35c30cf0bc034a9745e987084b31d4e923e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B9=B8=E7=A6=8F=E7=9A=84=E7=96=AF=E7=8B=82=E7=9A=84?= =?UTF-8?q?=E7=9F=B3=E5=A4=B4?= Date: Tue, 31 Dec 2019 14:39:40 +0800 Subject: [PATCH] =?UTF-8?q?responseType=E4=B8=BAjson=EF=BC=8C=E5=B0=9D?= =?UTF-8?q?=E8=AF=95=E8=AE=BF=E9=97=AEresponseText=EF=BC=8C=E8=A7=A6?= =?UTF-8?q?=E5=8F=91=E5=BC=82=E5=B8=B8=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit responseType为json,服务器端返回的engine.response为null时,尝试访问responseText,触发异常,得到undefined错误。 --- src/fly.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/fly.js b/src/fly.js index ce11d92..78bd654 100644 --- a/src/fly.js +++ b/src/fly.js @@ -250,7 +250,14 @@ class Fly { engine.onload = () => { try { // The xhr of IE9 has not response field - let response = engine.response || engine.responseText; + var response; + if (!engine.responseType || engine.responseType === "text") { + response = engine.responseText; + } else if (engine.responseType === "document") { + response = engine.responseXML; + } else { + response = engine.response; + } if (response && options.parseJson && (engine.getResponseHeader(contentType) || "").indexOf("json") !== -1 // Some third engine implementation may transform the response text to json object automatically, // so we should test the type of response before transforming it @@ -285,7 +292,7 @@ class Fly { onerror(e) } } catch (e) { - onerror(new Err(e.msg, engine.status)) + onerror(new Err(e.msg||e.message, engine.status)) } }