Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSONP函数调用问题_Javascript_Jquery_Jsonp - Fatal编程技术网

Javascript JSONP函数调用问题

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在这里帮助我,并尝试

我设置了一个跨域的Web服务,需要通过带有填充的json进行联系 在这样一个简单的jquery代码行中,我成功地获取了json数据

$.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就是这样做的。现在,我的内部回调函数运行良好。谢谢你的帮助