jQuery 在服务器上以不同于本地主机的方式对我的数据进行编码?
我有一个这样的函数:
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');
}
当它被调用时,如果我从本地主机运行应用程序,我可以看到我的数据正确发送,而当我在生产服务器上运行应用程序时,我看到(使用 webkit 检查器)传递的数据为如下:
changed_users:[对象对象] 已更改用户数:1
为什么在生产服务器上我得到“对象对象”?两个环境中的 jQuery 库是相同的。
提前致谢!
编辑 这是本地主机上检查器的输出
<前><代码>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
I've a function like this:
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');
}
When it gets called, if i run the application from localhost i can see my data sent correctly, while when i run the application on my production server i see (using the webkit inspector) the data passed as follows:
changed_users:[object Object] num_of_changed_users:1
Why on production server i get "object Object"? The jQuery library is the same on the two environments.
Thanks in advance!
EDIT
Here is the output on the inspector on 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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您正在向服务器发送 json 数据,您必须了解服务器脚本如何获取该数据以及如何对其进行解码。例如,在 php 上,我使用 json_decode 将 json 转换为数组或对象,可能在您的生产服务器中,此过程是自动的(通过配置)。还记得在将数据发送到服务器时在文本上使用encodeuricomponent,在你的情况下我会这样做:(
服务器端不需要自动完成uri的解码)
you are sending a json data to server, you must see how your server script get this data and how it decodes them. For example on php I use json_decode for converting json to arrays or objects, may in your production server this process is automatic (by configuration). Also remember to use encodeuricomponent on text when sending data to server, in your case I would do this:
(no need decode of uri on server side is done automatically)