在没有JSONP的情况下调用API

时间:2014-10-18 17:03:49

标签: jquery ajax api jsonp

我一直在阅读关于对外部API进行AJAX调用的问题,人们说你必须使用JSONP,否则会出现404错误。

但是,我可以使用以下代码

调用以下API:http://www.telize.com/ip

  $.ajax({
    type: "GET",
    url: "http://www.telize.com/geoip",
    success: function(data) {
      alert(data.ip);
      $(".theTest").text(data.ip);
    },
    dataType: "JSON"

  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

它对我很有用。

此API位于外部服务器上,我可以获取所需的数据。

我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

如果您在网络控制台中看到,则表示响应标头值为= Access-Control-Allow-Origin:*

有关Access-Control-Allow-Origin的更多信息根据相同的原始策略,如果您调用其他域上存在的API,则会出现错误see this link。浏览器会说它是CORS问题。要解决此问题,其他域中存在的API必须允许您从您的域中调用,即只需添加上述标题 - help

这就是为什么你可以从任何域调用它。看看下面的截图。

enter image description here