A solution for an error occurring during a jQuery $.ajax
request.
I was using this common jQuery Ajax pattern on a page I am working:
$(function () { $(document).on('click', '.create-domain .submit', function (e) { e.preventDefault(); var data = { domain_description: $('.create-domain .domain-description-textarea') } $.ajax({ type: 'post', url: '/process/something.php', data: data, error: function (data) { console.debug(data); }, success: function (response) { //stuff } }); });
But on clicking the submit element, I kept getting this cryptic error:
Uncaught TypeError: Cannot read property 'type' of undefined at r.handle (jquery-2.2.4.min.js:3) at e (jquery-2.2.4.min.js:4) at Gb (jquery-2.2.4.min.js:4) at Gb (jquery-2.2.4.min.js:4) at Gb (jquery-2.2.4.min.js:4) at Gb (jquery-2.2.4.min.js:4) at Function.n.param (jquery-2.2.4.min.js:4) at Function.ajax (jquery-2.2.4.min.js:4) at HTMLButtonElement. (something.php:575) at HTMLDocument.dispatch (jquery-2.2.4.min.js:3) at HTMLDocument.r.handle (jquery-2.2.4.min.js:3)
The problem was that in the data
variable, I was including an HTML element (a textarea
) inside the data
variable, instead of including the textarea
‘s content. Thus the corrected code is (notice the .val()
at the end):
var data = { domain_description: $('.create-domain .domain-description-textarea').val(), }
Hopefully this will help a few people, helping making the world economy more efficient by 1*10-12% (saving the world economy $107 USD over the next year).