我建立了跨域的网络服务,需要通过json与padding联系 在像这样的简单jquery代码行上,我成功地获取了json数据。
$.getJSON("http://server/series/hist?jsonp=?", function(data){
console.log(data);
});
只要网址中存在“jsonp”,web服务就会将结果包装在函数中。
对于那些情况,我使用了默认函数名称,如:
myfunction({"a":1})
jquery在这里帮助我,并试图调用函数,即不存在(“myfunction()”)。我试图实现的是对回调函数的简单调用(见上文),以便在本地处理数据。
你能指出我正确的方向吗?谢谢
答案 0 :(得分:3)
我不太确定你的问题究竟是什么,但是:
解释1
假设“本地”是指“不使用回调”:
这是不可能的。 JSON-P 无法同步工作,因为它取决于<script>
元素的添加(在当前函数执行完毕之前不会处理)。
解释2
假设that isnt existing ("myfunction()")
表示“您的网络服务始终使用函数名称myfunction
:
修复网络服务。 jsonp=?
表示“随机生成函数名称并将其作为jsonp
参数传递。
Web服务必须使用该参数来确定使用的函数名称,而不是使用固定值,例如myfunction
。
解释3
您不希望使用JSON-P作为输入,而是直接调用您的匿名函数。
你做不到。它不会存储在您可以访问它的任何位置。您必须重写代码,因此不会直接传递给getJSON
:
function myFunction(data){
console.log(data);
}
$.getJSON("http://server/series/hist?jsonp=?", myfunction);
myfunction({"a":1})