Jquery $.getJSON不工作。为什么?

Jquery $.getJSON不工作。为什么?,jquery,jsonp,Jquery,Jsonp,我可以使用$.get()从ipinfo.io获取数据,如下所示: $.get("http://ipinfo.io", function(response) { alert(response.city); }, "jsonp"); 以上工作。但是,当我尝试使用$.getJSON实现此目的时,我不再获取数据。我的代码是: $.getJSON( "http://ipinfo.io/?callback=callback?", function(response) {

我可以使用$.get()从ipinfo.io获取数据,如下所示:

$.get("http://ipinfo.io", function(response) {
      alert(response.city);
    }, "jsonp");
以上工作。但是,当我尝试使用$.getJSON实现此目的时,我不再获取数据。我的代码是:

$.getJSON(
      "http://ipinfo.io/?callback=callback?", function(response) {
        alert(response.city);
      }
    ).fail(function(){
      console.log("failed");
    });
url中的“?callback=callback?”部分在中指示

有时它会显示“请求太多”,这是可以的。但大多数情况下,它没有出现任何错误。我做错了什么?

根据

如果URL包含字符串“callback=?”(或类似字符串,如 服务器端API),请求被视为JSONP。见 有关更多详细信息,请讨论$.ajax()中的jsonp数据类型

因此,将代码从
callback=callback?
更改为
callback=?
,如下所示:

$.getJSON(
      "http://ipinfo.io/?callback=?", function(response) {
        alert(response.city);
      }
    ).fail(function(){
      console.log("failed");
    });
如果webservice为jsonp回调使用了与回调不同的参数,那么您将相应地更改该部分。例如,如果您的服务器使用了
results=
,则url将是
”http://coolwebservice.io/?results=?“

更改
”http://ipinfo.io/?callback=callback?“
”http://ipinfo.io/?callback=?

$.getJSON(
  "http://ipinfo.io/?callback=?", function(response) {
    alert(response.city);
  }
).fail(function(){
  console.log("failed");
});

老帖子,但像我这样的人可能正在寻找答案。 用html或php保存文件,即使其中的代码可能是json。 之后,如果希望输出为json,请使用get或GETJSON,后者