是否可以在url jquery中发送对象

时间:2015-04-29 08:14:15

标签: jquery arrays url object

data.push({
    name: name,
    age: age,
    address: address,
    contactnumber: contactnumber

});

var url = '../reports/student.php?data='+data;
window.open(url, '_blank');

../reports/student.php?data=[object%20Object]

上面是我想要发送到另一个页面的对象,因此我可以检索它并在下一页上使用它来生成报告。网址看起来像上面那个我不确定这是否可能,如果可能的话,我如何才能获得对象中每个数据的值。如果不可能请指出正确的方向,任何想法都是ap

2 个答案:

答案 0 :(得分:2)

如果您绝对想要使用GET请求,请使用JSON.stringify

var url = '../reports/student.php?data='+ encodeURIComponent(JSON.stringify(data));

但更好的方法是POST请求。

您也可以使用jQuery.param()

var data = {
  name: 'yourname',
  age: 1,
}

var params = jQuery.param(data) // 'name=yourname&age=1'
var url = '../reports/student.php?'+ params;

答案 1 :(得分:1)

jQuery.param()

  

创建适合在URL查询字符串或Ajax请求中使用的数组,普通对象或jQuery对象的序列化表示形式。如果传递了jQuery对象,它应该包含具有名称/值属性的输入元素。

该文件还指出,

  

如果传递的对象在Array中,则它必须是.serializeArray()

返回的格式的对象数组

所以在你的情况下:

var url = '../reports/student.php?' + jQuery.param(serializeArray(data));

要反序列化,您应该使用jQuery BBQdeparam函数,根据此问题中的cce答案:The $.param( ) inverse function in JavaScript / jQuery