我通過JavaScript爲一個REST API將數據發送到服務器(這將是內部的PhoneGap的應用,因此使用jQuery而不是任何服務器代碼)發送數據。我正在構建自己的API,因此我有靈活的選項,但是我想知道是否有一種首選的方式來處理POST數據。我使用JSON作爲GET,所以我應該將它用於POST嗎?系列化VS JSON
有什麼更好的方式來發送?
1)使用serialize方法,然後將其發送作爲數據,例如:
$('form').submit(function(e){
e.preventDefault();
var form = $(this);
$.ajax({
type: 'POST',
url: form.attr('action'),
data: form.serialize(),
success: function(response){
// handle response
},
error: function(a,b,c) {
// handle error
}
});
});
或2)將它作爲一個JSON對象,如:
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
$('form').submit(function(e){
e.preventDefault();
var form = $(this);
$.ajax({
type: 'POST',
url: form.attr('action'),
data: JSON.stringify(form.serializeObject()),
success: function(response){
// handle response
},
error: function(a,b,c) {
// handle error
}
});
});
最重要的是,後者增加了一個額外的反序列化步驟到整個請求處理 – Alexander 2013-02-17 14:37:27