【发布时间】:2012-03-23 04:02:05
【问题描述】:
对于我的一个项目,我需要使用 JSONP 对(远程)API 进行多次调用以处理 API 响应。所有调用都使用相同的回调函数。所有调用都是在客户端使用 JavaScript 动态生成的。
问题如下:如何将附加参数传递给该回调函数,以便告诉该函数我使用的请求参数。因此,例如,在以下示例中,我需要 myCallback 函数来了解 id=123。
<script src="http://remote.host.com/api?id=123&jsonp=myCallback"></script>
有没有什么方法可以实现这一点,而不必为我的每个调用创建单独的回调函数?首选原生 JavaScript 解决方案。
编辑:
在第一次遇到并回答之后,出现了以下几点:
- 我对远程服务器没有任何控制权。因此,将参数添加到响应中不是一种选择。
- 我同时启动了多个请求,因此存储我的参数的任何变量都不能解决问题。
- 我知道,我可以动态创建多个回调并分配它们。但问题是,我是否能以某种方式避免这种情况。如果没有其他解决方案弹出,这将是我的后备计划。
【问题讨论】:
-
你能让服务器返回 id 作为响应的一部分吗?服务器知道它,所以它可以为你把它放在响应代码中。
-
您正在做需要做的事情。剩下的就由远程主机来识别你的参数了。
-
可能是的.... jQuery 会让这个 very 变得简单,但如果你不想包含它,我理解。
-
@jfriend00 我无法控制远程服务器,所以那里没有变化
-
JSONP调用是代码动态生成的吗?还是静态包含在您的页面中?如果是通过代码动态生成的,还有更多的选择。
标签: javascript jsonp