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

$.getJSON cant handle named function?

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

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

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

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

但是他简单的忽略了下面的函数

如果我将 showMyIP 替换为 ?并使其匿名。

我还有一个 100% 正确的 json,其中 jquery 拒绝 运行 匿名函数,尽管得到了正确的 json 回包匿名。函数,在调试中我丢失了一个;某些对象上的错误对我来说根本没有意义,因为没有;在 jsons.

中使用

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

其次,$.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>