我有这样一个函数:
function flush_changes() {
jQuery('#save-changes').replaceWith('<span id="save-changes">Saving..</span>');
var changes = new Array();
for (var i=0; i<edited_users.length; i++) {
changes.push({
id: edited_users[i],
first_profession: jQuery('#user_first_profession_' + edited_users[i]).val(),
second_profession: jQuery('#user_second_profession_' + edited_users[i]).val()
});
}
jQuery.post("${tg.url('/users/admin_user_professions/save')}",
{
changed_users: changes,
num_of_changed_users: changes.length
},
function(data) {
if (data.result == 'OK') {
location.href = location.href;
} else {
alert('Error while saving: ' + data.reason);
}
}, 'json');
}
当调用它时,如果我从localhost运行应用程序,我可以看到正确发送的数据,而在生产服务器上运行应用程序时,我可以看到(使用webkit检查器)传递的数据,如下所示:
changed_users:[object Object] num_of_changed_users:1
为什么在生产服务器上我得到“对象”?jQuery库在这两种环境中是相同的。你知道吗
提前谢谢!你知道吗
编辑 以下是localhost上inspector的输出
changed_users%5B0%5D%5Bid%5D:314 changed_users%5B0%5D%5Bfirst_profession%5D:5 changed_users%5B0%5D%5Bsecond_profession%5D:6 num_of_changed_users:1
如果要向服务器发送json数据,则必须查看服务器脚本如何获取这些数据以及如何对其进行解码。例如,在php上,我使用json\u decode将json转换为数组或对象,可能在您的生产服务器上,这个过程是自动的(通过配置)。还记得在向服务器发送数据时在文本上使用encodeuricomponent,在您的情况下,我会这样做:
(服务器端无需自动解码uri)
相关问题 更多 >
编程相关推荐