jQuery在服务器上编码数据的方式与在localhost上不同?

2024-09-23 00:21:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个函数:

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

Tags: ofiddatavarsavefunctionjqueryusers
1条回答
网友
1楼 · 发布于 2024-09-23 00:21:19

如果要向服务器发送json数据,则必须查看服务器脚本如何获取这些数据以及如何对其进行解码。例如,在php上,我使用json\u decode将json转换为数组或对象,可能在您的生产服务器上,这个过程是自动的(通过配置)。还记得在向服务器发送数据时在文本上使用encodeuricomponent,在您的情况下,我会这样做:

.......
first_profession: encodeURIcomponent(jQuery('#user_first_profession_'+edited_users[i]).val()),
.......

(服务器端无需自动解码uri)

相关问题 更多 >