【问题标题】:jQuery encodes my data in a different way on server than on localhost?jQuery 在服务器上以不同于本地主机的方式对我的数据进行编码?
【发布时间】:2011-02-16 22:51:24
【问题描述】:

我有这样的功能:

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 上检查器的输出

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

【问题讨论】:

  • 您是否也在使用相同的方法(webkit 检查器)来嗅探本地主机上的数据?
  • 在 localhost 上运行 webkit 检查器时将其输出。
  • 是的,我也在使用 webkit 检查器来嗅探 localhost 上的数据。我已经添加了在 localhost 上产生的输出

标签: jquery python ajax turbogears


【解决方案1】:

您正在向服务器发送 json 数据,您必须查看服务器脚本如何获取此数据以及如何解码它们。例如,在 php 上,我使用 json_decode 将 json 转换为数组或对象,可能在您的生产服务器中,此过程是自动的(通过配置)。还记得在向服务器发送数据时在文本上使用 encodeuricomponent,在你的情况下我会这样做:

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

(不需要服务器端的uri解码是自动完成的)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 2012-11-22
    • 1970-01-01
    • 2019-10-21
    相关资源
    最近更新 更多