无法理解为什么我的key = value对转换为符号,并且在我的ajax GET调用中,我有:

GET /admin_schedule/get_schedule_db/?0=%5B&1=o&2=b&3=j&4=e&5=c&6=t&7=+&8=O&9=b&10=j&11=e&12=c&13=t&14=%5D&15=%22&16=%26&17=t&18=e&19=a&20=c


代替:

GET /admin_schedule/get_schedule_db/?teacherArray[]=128&teacherArray[]=134...


我的代码:

var eventss = '';
$("input[type='checkbox'][name='teacher']").each( function() {
    if(this.checked) {
        eventss += "&teacherArray[]=" + $(this).attr("value");
    }
});
events1.data += eventss;


全日历事件的ajax

var events1 = {
    url: '/admin_schedule/get_schedule_db/',
    type: 'GET',
    data: {sch_teacher_id: (sch_teacher_id) ? sch_teacher_id : $('.teacher').val() },
    success: function (response) {
        return response;
    }
};


然后获取事件的全部日历

eventSources: [
            events1,
            events2,
            events3
        ],

最佳答案

将字符串与对象连接几乎不是一个好主意,因为Object#toString总是返回"[object Object]"。除非您在对象中覆盖toString,否则在连接之前,对象将强制转换为字符串,因为此字符串(意味着其内容丢失)。此外,结果字符串不是有效的查询字符串。

代替

eventss += "&teacherArray[]=" + $(this).attr("value");
...
events1.data += eventss;


尝试在teacherArray中创建一个空的data

events1.data.teacherArray.push($(this).attr("value"));


也考虑使用$("#my-form").serialize()

关于javascript - 当Ajax调用时,键=值对按每个符号代码划分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13716574/

10-09 23:48
查看更多