From c332471f23b6ff5436494b3aa3055a4af573bc72 Mon Sep 17 00:00:00 2001 From: chenliqiang Date: Tue, 6 Jun 2017 15:44:35 +0800 Subject: [PATCH 1/2] deal
 tag and error

---
 jquery.ajaxfileupload.js | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/jquery.ajaxfileupload.js b/jquery.ajaxfileupload.js
index e358612..231f362 100644
--- a/jquery.ajaxfileupload.js
+++ b/jquery.ajaxfileupload.js
@@ -75,10 +75,20 @@
 		function onComplete (e) {
 			var $iframe  = $(e.target),
 				doc      = ($iframe[0].contentWindow || $iframe[0].contentDocument).document,
-				response = doc.body.innerHTML;
+				response = doc.body.innerHTML,
+				// some browser will wrap result in a 
 tag
+				pre      = doc.getElementsByTagName('pre');
 
+			if(!!pre.length) {
+				response = pre[0].innerHTML;
+			}
+			
 			if (response) {
-				response = $.parseJSON(response);
+				try {
+					response = $.parseJSON(response);
+				} catch (e) {
+					response = {};
+				}
 			} else {
 				response = {};
 			}

From 423a9805934d43adc16126a25df38fc0e8afcbfc Mon Sep 17 00:00:00 2001
From: chenliqiang 
Date: Wed, 25 Oct 2017 17:23:30 +0800
Subject: [PATCH 2/2] enchance exception

---
 jquery.ajaxfileupload.js | 34 ++++++++++++++++++----------------
 1 file changed, 18 insertions(+), 16 deletions(-)

diff --git a/jquery.ajaxfileupload.js b/jquery.ajaxfileupload.js
index 231f362..d0c5451 100644
--- a/jquery.ajaxfileupload.js
+++ b/jquery.ajaxfileupload.js
@@ -7,6 +7,9 @@
  * Thanks to Steven Barnett for his generous contributions
  *
  * Licensed under the MIT license ( http://www.opensource.org/licenses/MIT )
+ * 
+ * @update 2017.10.24 by richard chen
+ *   enhancement of exception handler
  */
 
 ;(function($) {
@@ -73,24 +76,23 @@
 		}
 		
 		function onComplete (e) {
-			var $iframe  = $(e.target),
-				doc      = ($iframe[0].contentWindow || $iframe[0].contentDocument).document,
-				response = doc.body.innerHTML,
-				// some browser will wrap result in a 
 tag
-				pre      = doc.getElementsByTagName('pre');
-
-			if(!!pre.length) {
-				response = pre[0].innerHTML;
-			}
+			var response;
 			
-			if (response) {
-				try {
-					response = $.parseJSON(response);
-				} catch (e) {
-					response = {};
+			try {
+				var $iframe = $(e.target),
+					doc = ($iframe[0].contentWindow || $iframe[0].contentDocument).document,
+					pre = doc.getElementsByTagName('pre');
+
+				response = doc.body.innerHTML;
+
+				// some browser auto add 
 tag
+				if (!!pre.length) {
+					response = pre[0].innerHTML;
 				}
-			} else {
-				response = {};
+
+				response = $.parseJSON(response);
+			} catch (e) {
+				response = null;
 			}
 
 			settings.onComplete.call(e.data.element, e.data.filename, response);