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 to share
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 to share
Try
$.post(
'api/something',
{ key: 'value' },
function( data ) {
...
},
'json'
);
See http://api.jquery.com/jquery.post/ for details
0
source to share