mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-07-31 11:20:22 +02:00
Merge pull request #296 from theli-ua/json
Allow to encode post/get params with json.stringify and specify own cont...
This commit is contained in:
@@ -494,6 +494,7 @@ Tomahawk.ajax = function(url, settings) {
|
|||||||
|
|
||||||
settings.type = settings.type || settings.method || 'get';
|
settings.type = settings.type || settings.method || 'get';
|
||||||
settings.method = settings.type;
|
settings.method = settings.type;
|
||||||
|
settings.dataFormat = settings.dataFormat || 'form';
|
||||||
|
|
||||||
if (settings.data) {
|
if (settings.data) {
|
||||||
var formEncode = function(obj) {
|
var formEncode = function(obj) {
|
||||||
@@ -508,14 +509,28 @@ Tomahawk.ajax = function(url, settings) {
|
|||||||
|
|
||||||
return str.join("&");
|
return str.join("&");
|
||||||
};
|
};
|
||||||
|
if (typeof settings.data === 'object') {
|
||||||
|
if (settings.dataFormat == 'form') {
|
||||||
|
settings.data = formEncode(settings.data);
|
||||||
|
settings.contentType = settings.contentType || 'application/x-www-form-urlencoded';
|
||||||
|
} else if (settings.dataFormat == 'json') {
|
||||||
|
settings.data = JSON.stringify(settings.data);
|
||||||
|
settings.contentType = settings.contentType || 'application/json';
|
||||||
|
} else {
|
||||||
|
throw new Error("Tomahawk.ajax: unknown dataFormat requested: " + settings.dataFormat);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new Error("Tomahawk.ajax: data should be either object or string");
|
||||||
|
}
|
||||||
|
|
||||||
if (settings.type.toLowerCase() === 'get') {
|
if (settings.type.toLowerCase() === 'get') {
|
||||||
settings.url += '?' + formEncode(settings.data);
|
settings.url += '?' + settings.data;
|
||||||
delete settings.data;
|
delete settings.data;
|
||||||
} else {
|
} else {
|
||||||
settings.headers = settings.headers || {};
|
settings.headers = settings.headers || {};
|
||||||
settings.headers['Content-Type'] = 'application/x-www-form-urlencoded';
|
if (!settings.headers.hasOwnProperty('Content-Type')) {
|
||||||
settings.data = formEncode(settings.data);
|
settings.headers['Content-Type'] = settings.contentType;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user