diff --git a/src/jquery.form.js b/src/jquery.form.js
index 168d4b8b..72cc4945 100644
--- a/src/jquery.form.js
+++ b/src/jquery.form.js
@@ -262,6 +262,10 @@
var successArguments = arguments,
fn = options.replaceTarget ? 'replaceWith' : 'html';
+ // Validate `data` through `HTML encoding` when passed `data` is passed
+ // to `html()`, as suggested in https://github.com/jquery-form/form/issues/464
+ fn == 'html' ? data = $.parseHTML($("
").text(data).html()) : '';
+
$(options.target)[fn](data).each(function(){
oldSuccess.apply(this, successArguments);
});
@@ -923,8 +927,12 @@
return (doc && doc.documentElement && doc.documentElement.nodeName !== 'parsererror') ? doc : null;
};
var parseJSON = $.parseJSON || function(s) {
- /* jslint evil:true */
- return window['eval']('(' + s + ')'); // eslint-disable-line dot-notation
+
+ // Arise an error resolvable including jquery instead of
+ // making a new function using unsanitized inputs
+
+ window.console.error('jquery.parseJSON is undefined');
+ return null;
};
var httpData = function(xhr, type, s) { // mostly lifted from jq1.4.4