javascript - Can I use a variable to pass a json string? - Stack Overflow

This code works:$(this).load($('.pageloadlabel', this).attr('href'), {category: 1})

This code works:

$(this).load($('.pageloadlabel', this).attr('href'), {category: 1});

This code doesn't work:

var data = '{category: 1}';
$(this).load($('.pageloadlabel', this).attr('href'), data);

The question is, how can I make it work?

This code works:

$(this).load($('.pageloadlabel', this).attr('href'), {category: 1});

This code doesn't work:

var data = '{category: 1}';
$(this).load($('.pageloadlabel', this).attr('href'), data);

The question is, how can I make it work?

Share Improve this question edited Aug 31, 2015 at 10:18 Nuwan 1,3841 gold badge14 silver badges39 bronze badges asked Jul 28, 2010 at 17:10 C. E.C. E. 10.6k11 gold badges56 silver badges79 bronze badges 1
  • 2 Try removing the quotes around the JSON when you assign to data. – i_am_jorf Commented Jul 28, 2010 at 17:12
Add a ment  | 

4 Answers 4

Reset to default 2

Your data is not a Javascript object but a string, you can convert it to object by eval e.g.

data = eval('(' + data + ')');

but eval is considered dangerous, so better to parse string as JSON e.g.

data = JSON.parse(data)

For JSON lib you can use json2

It's not JSON, it's a javascript object.

var data = { category: 1 };

If you have a string, you would have to convert it to a object.

And notice that your string is not a valid JSON, see the link for more details.

Take out the quotes, the load function is expecting an object, not a string.

Have you tried to use eval() on data?

var data = '{category: 1}';
$(this).load($('.pageloadlabel', this).attr('href'), eval(data));

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744688440a4588062.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信