Javascript JSONP函数调用问题
我设置了一个跨域的Web服务,需要通过带有填充的json进行联系 在这样一个简单的jquery代码行中,我成功地获取了json数据Javascript JSONP函数调用问题,javascript,jquery,jsonp,Javascript,Jquery,Jsonp,我设置了一个跨域的Web服务,需要通过带有填充的json进行联系 在这样一个简单的jquery代码行中,我成功地获取了json数据 $.getJSON("http://server/series/hist?jsonp=?", function(data){ console.log(data); }); 只要url中存在“jsonp”,webservice就会将结果包装在函数中。 对于这些情况,我使用了默认函数名,如: myfunction({"a":1}) jquery在这里帮助我,并尝试
$.getJSON("http://server/series/hist?jsonp=?", function(data){
console.log(data);
});
只要url中存在“jsonp”,webservice就会将结果包装在函数中。
对于这些情况,我使用了默认函数名,如:
myfunction({"a":1})
jquery在这里帮助我,并尝试调用不存在的函数(“myfunction()”)。我试图实现的是一个简单的回调函数调用(见上文),在本地处理数据
你能给我指一下正确的方向吗
谢谢你我不太确定你的问题到底是什么,但是: 解释1 假设“本地”的意思是“不使用回调”: 这是不可能的。JSON-P无法同步工作,因为它依赖于添加
元素(在当前函数完成执行之前不会处理该元素)
解释2
假设不存在(“myfunction()”)
您的意思是“您的Web服务总是使用函数名myfunction
:
修复Web服务。jsonp=?
表示“随机生成函数名并将其作为jsonp
参数传递”
Web服务必须使用该参数来确定所使用的函数名,而不是使用固定值,例如myfunction
解释3
您不想使用JSON-p作为输入,而是直接调用匿名函数
你不能。它没有存储在任何你可以访问的地方。您必须重写代码,这样它就不会直接传递给getJSON
:
function myFunction(data){
console.log(data);
}
$.getJSON("http://server/series/hist?jsonp=?", myfunction);
myfunction({"a":1})
我不太确定你的问题到底是什么,但是: 解释1 假设“本地”的意思是“不使用回调”: 这是不可能的。JSON-P无法同步工作,因为它依赖于添加
元素(在当前函数完成执行之前不会处理该元素)
解释2
假设不存在(“myfunction()”)
您的意思是“您的Web服务总是使用函数名myfunction
:
修复Web服务。jsonp=?
表示“随机生成函数名并将其作为jsonp
参数传递”
Web服务必须使用该参数来确定所使用的函数名,而不是使用固定值,例如myfunction
解释3
您不想使用JSON-p作为输入,而是直接调用匿名函数
你不能。它没有存储在任何你可以访问的地方。您必须重写代码,这样它就不会直接传递给getJSON
:
function myFunction(data){
console.log(data);
}
$.getJSON("http://server/series/hist?jsonp=?", myfunction);
myfunction({"a":1})
在本地,我指的是上面代码中的回调函数:函数(数据){console.log(数据);},因为在每个JSON示例中都提到了它,所以我只是阅读了您的编辑解释2。如果我没弄错的话,jquery会随机为“?”生成一个名称。因此,Web服务必须捕捉到这一点,并将其包装在json结果周围,以使回调函数正常工作?@zbug-Yes。你不能每次都使用同一个名字,你会遇到冲突。好的,太好了。我能弄明白。Web服务不接受字符串中包含“\u1”的任何GET值。另一方面,jquery就是这样做的。现在,我的内部回调函数运行良好。您的帮助在本地很受欢迎,我指的是上面代码中的回调函数:函数(数据){console.log(数据);},因为在每个JSON示例中都提到了它,所以我只是阅读了您的编辑解释2。如果我没弄错的话,jquery会随机为“?”生成一个名称。因此,Web服务必须捕捉到这一点,并将其包装在json结果周围,以使回调函数正常工作?@zbug-Yes。你不能每次都使用同一个名字,你会遇到冲突。好的,太好了。我能弄明白。Web服务不接受字符串中包含“\u1”的任何GET值。另一方面,jquery就是这样做的。现在,我的内部回调函数运行良好。谢谢你的帮助