1

How can I access the data object used in a $.ajax() request?

$.ajax({
    url: "post.php",
    type:'POST',
    data:{
        el1: $('#el1').val(),
        ...
        el72: $('#el72').val()
    },
    success: function(res,status){
        //
    }
});
yuriy636
  • 11,171
  • 5
  • 37
  • 42

2 Answers2

5

You can access the processed options that you passed into $.ajax from within the success callback using this, as long as you didn't bind the function, use an arrow function, or use the context option.

console.log(this.data); // for POST
console.log(this.url); // for GET, but you'll have to parse out the url portion

You'll notice though that it's in a parameterized string rather than an object now because that's how it is sent to the server. See here for ways to convert it back to an object: Convert URL parameters to a JavaScript object


I would just use a variable.

Community
  • 1
  • 1
Kevin B
  • 94,570
  • 16
  • 163
  • 180
1

Create a variable before calling ajax().

var formData = {
    el1: $('#el1').val(),
    ...
    el72: $('#el72').val()
};

$.ajax({
    url: "post.php",
    type:'POST',
    data: formData,
    success: function(res,status){
        // do something with formData
    }
});
Gus Costa
  • 609
  • 5
  • 13
  • Thank you, but I was looking for an answer without using a variable before the ajax. Upvote though. – yuriy636 Jun 14 '16 at 17:25