开始在这个上撕掉我的头发所以我花时间问:
我有一个像这样的jquery函数:
function run_script(prog, args){
var out;
jQuery.ajax({
method: 'POST',
url: prog,
async: false,
data: args,
success: function(result){
out = jQuery.parseJSON(result);
}
})
return out;
}
现在,当我调用该函数时,我会执行类似
的操作jQuery(document).ready( function(){
jQuery('#some_button').click( function(){
run_script('my_script.pl',{ "key" : "value"} );
})
})
但是我似乎在函数中格式化我插入args
的变量,我没有在脚本中捕获我想要的参数(我确信脚本可以工作,因为它在其他地方使用)。如果我将它们作为对象传递(如上所述),我根本就没有参数。如果我将它们作为字符串传递 - 即run_script('my_script.pl','{ "key" : "value"}' );
(在{ "key" : "value" }
附近添加了引号,那么我似乎在脚本中接收keywords: {
(不,这不是错误 - 只是单词{ {1}}和一个大括号。
如果我回过头来将数据作为对象传递,然后在函数内但在ajax调用之前将其字符串化 - 那么现在就像
keywords
然后整个字符串确实被传递 - 但是它被收到var dat = jQuery.toJSON(args);
jQuery.ajax({
method: 'POST',
url: prog,
async: false,
data: dat,
success: function(result){
out = jQuery.parseJSON(result);
}
})
,而不是所需的格式keywords='{ "key" : "value" }'
。
如果我对key=value
属性进行硬编码,请执行以下操作:
data
然后好像通过魔法一样,脚本会选择jQuery.ajax({
method: 'POST',
url: prog,
async: false,
data: { "key": "value" },
success: function(result){
out = jQuery.parseJSON(result);
}
})
。任何人都可以对此有所了解吗?我该怎么做才能以正确的方式将信息传递到key=value
?