$ .getJSON无法处理命名函数?

时间:2017-04-06 14:08:06

标签: jquery getjson

为什么jquery在命名回调函数时没有执行该函数?

$.getJSON("http://ip.jsontest.com/?callback=showMyIP"),function (){
     console.log("test");}

dev工具显示我得到了正确的json

showMyIP({"ip": "84.113.30.7"});

但他简单地忽略了以下功能

如果我用showMyIP替换?并使其无效它。

我还有一个100%正确的json,其中jquery拒绝运行匿名函数,尽管正确的json包裹在anony中。功能,在调试中我得到了一个缺失;某些对象的错误对我来说毫无意义,因为没有;用于jsons。

1 个答案:

答案 0 :(得分:1)

你有两个问题。首先,代码中存在随机),导致语法错误。

其次,$.getJSON需要JSON响应,而不是JSONP。要执行您想要的操作,请使用$.ajax()并设置正确的dataType

$.ajax({
  url: 'http://ip.jsontest.com/',
  dataType: 'jsonp',
  jsonpCallback: 'showMyIP',
  success: function(data) {
    console.log(data);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>