JQuery shortcut to send ajax / JSON requests

I am working on an application using REST architecture style. Hence, I often make some calls to the backend with JSON data.

jQuery is new to me and so far the only syntax that has worked for me is:

$.ajax({
  url: '/api/something/',
  type: 'POST',
  contentType:"application/json", //Or I will get 400 : Bad request
  data: JSON.stringify({key : "value"}),
  success: function (data) {
    console.log("data : %o", data);
  }
});

      

But I don't want to write explicitly contentType:"application/json"

and JSON.stringify

on every call. I would prefer something like:

$.someFunction({
  url: '/api/something/',
  type: 'POST',
  data: {key : "value"},
  success: function (data) {
    console.log("data : %o", data);
  }
});

      

Perhaps I could make a function to factor this out, but I feel like there must be a pre-existing function for jQuery.

Does anyone know of such a function?

+3


source to share


4 answers


Try extending jQuery:



$.extend({doPost: function(url, data, success, error) {
    $.ajax({
        url: url,
        type: 'POST',
        contentType: "application/json",
        data: JSON.stringify(data),
        success: success,
        error: error
    });
  }
});

$.doPost('/api/something/', {"key" : "value"}, function(data) {
    console.log("data : %o", data);
});

      

0


source


Just wrap everything in a function and pass the required parameters.



var thinPostWrapper = function(url, data, success) {
    return $.ajax({
        url: url
        type: 'POST',
        contentType: "application/json",
        data: JSON.stringify(data),
        success: success
    });
}

thinPostWrapper('/api/something/', {"key" : "value"}, function(data) {
    console.log("data : %o", data);
});

      

+1


source


Try

$.post(
   'api/something', 
   { key: 'value' }, 
   function( data ) {
     ...
   }, 
   'json'
);

      

See http://api.jquery.com/jquery.post/ for details

0


source


Try $. post

$.ajax({
 type: "POST",
 url: url,
 data: data,
 success: success,
 dataType: dataType
});

      

0


source







All Articles