jQuery:使用.load()时将json设置为dataType

时间:2013-01-14 20:44:28

标签: jquery ajax load

$(...).load('index.html', params)

有没有办法指示load将params作为JSON传递?

$.ajaxSetup({})会影响加载功能吗?


我要发送的示例对象:

{ 'state'  : [ { 'city' : 'city-foo' , 'zip'  : 'zip-foo' },
               { 'city' : 'city-bar' , 'zip'  : 'zip-bar' }
             ],
  'person' : [ { 'name' : 'name-foo' },
               { 'name' : 'name-bar' }
             ]
}

它是什么(不受欢迎的,独立的参数):

state[0][city]
state[0][zip]
state[1][city]
state[1][zip]
person[0][name]
person[1][name]

我期待/想要的东西:

param名称类似于 json ,其值为"{'state':[{'city':'city-foo','zip':'zip-foo'},{'city':'city-bar','zip':'zip-bar'}],'person':[{'name':'name-foo'},{'name':'name-bar'}]}"


更多信息

我正在尝试将它与bootstrap.js和select2.js一起使用 - 特别是将多选值传递给脚本并将值返回到模态。

var param = {/* object similar in structure to above example */};
$('#modal-id').load('?do=givemevalues', param ).modal('show')

以下是jsFiddle中的一个示例,您可以使用firebug进行探索,了解params在POST中的过去情况。

1 个答案:

答案 0 :(得分:2)

有没有办法指示加载将params作为JSON传递?

param可以是字符串或对象..它本身满足JSON表示法。但是,服务器可以将其解析为JSON。

另请注意,Request Method会根据参数类型进行更改。

  

如果数据作为对象提供,则使用POST方法;否则,假设GET。

$ .ajaxSetup({})会影响加载功能吗?

是的,下面是文档。

  

使用任何函数的所有后续Ajax调用都将使用新设置,除非被单个调用覆盖,直到下一次调用$ .ajaxSetup()。