2014-10-18 55 views
0

我一直在閱讀關於對外部API進行AJAX調用的消息,並且人們說你必須使用JSONP,否則你將會遇到404錯誤。調用沒有JSONP的API

但是我能夠調用以下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位於外部服務器上,我可以獲取我想要的數據。

我錯過了什麼嗎?

回答

2

如果您在網絡控制檯中看到,則表示響應標頭值爲= Access-Control-Allow-Origin:*

有關Access-Control-Allow-Origin的更多信息根據同一起源策略,如果您調用其他域上存在的API,將會出現錯誤see this link。瀏覽器會說它是CORS問題。爲了克服這一點,其他域中的API必須允許您從域中調用,即只需添加上述標頭 - help

這就是您可以從任何域調用此功能的原因。看看下面的截圖。

enter image description here

+0

可以在更多的解釋了'接入控制允許Origin'和同源策略將使回答完整。 – 2014-10-18 17:16:30

+0

,所以他們已經在他們的響應頭文件中包含了允許任何外部應用程序訪問它的響應頭文件?如果他們沒有包含這個額外的頭文件,那麼我將不得不使用jsonp?那是對的嗎? – somango 2014-10-18 17:17:14

+0

@SubirKumarSao,我只是補充說,感謝評論 – 2014-10-18 17:20:13