【发布时间】:2011-07-21 01:19:45
【问题描述】:
我的 JavaScript 代码几乎不是一个期望从后端返回 XML 的 Ajax 请求。后端可以将execute_callback 作为 XML 标记之一返回,如下所示:
<?xml version="1.0" encoding="windows-1251"?>
<response>
<execute_callback>
<function_name>someFunction</function_name>
</execute_callback>
</response>
只要您知道callback 期望的参数的确切数量,一切都很好。但是如果后端返回了怎么办
<?xml version="1.0" encoding="windows-1251"?>
<response>
<execute_callback>
<function_name>someFunction</function_name>
<param>10.2</param>
<param>some_text</param>
</execute_callback>
<execute_callback>
<function_name>otherFunction</function_name>
<param>{ x: 1, y: 2 }</param>
</execute_callback>
</response>
我现在如何将参数 10.2 和 'some_text' 传递给 someFunction 和 JSON { x: 1, y: 2 } 到 otherFunction?
我知道一个丑陋的解决方案(使用函数的arguments),但我正在寻找一个漂亮的解决方案。
在我忘记之前:不要为我解析 XML - 我可以自己做 :) 我所需要的只是将任意数量的参数传递给 JavaScript 中的函数。如果你知道Python,我想:
def somefunc(x, y):
print x, y
args = { 'x' : 1, 'y' : 2 }
somefunc(**args)
但在 JavaScript 中。
【问题讨论】:
-
如何区分文字(例如 10.2 和“某些文本”)和需要计算的表达式(例如
{ x: 1, y: 2 })? -
@RobG 这与问题无关。示例始终只是示例。第一个想法:我会将
type属性传递给<param>。了解返回什么类型根本不是问题。
标签: javascript