我正在尝试使用getAddress.io,尽管语法非常简单,但是我正在尝试编写后端管理,该管理可以获取列入白名单的域和用法等。
这是我在jQuery中的电话
$.ajax({
url: " https://api.getAddress.io/v2/usage",
context: document.body,
method: "GET",
data: {"api-key": getAddressAPIKey}
}).done(function(results) {
$("div.usage").append(results);
});
一切似乎都在进行。但是,它返回以下错误:
Failed to load https://api.getaddress.io/security/ip-address-whitelist?api-key=[apikey]: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://admin.awme.local' is therefore not allowed access.
我在做什么错?我已经知道编写自己的API时发生的错误,但这显然是我无法控制的公共API,因此我无法修改其代码以允许我访问。这是一项付费服务,因此我应该能够查询它并取回我的数据。为什么会出现此错误?
答案 0 :(得分:2)
您需要将域(如果要从客户端访问API)或服务器IP(如果使用后端)列入白名单。
https://getaddress.io/Documentation#domain-whitelist
只需使用admin-key(NOT API KEY),params(NOT IN BODY)和您的域名进行简单的发布请求,然后将Content-Type设置为application / json。
这是一个示例示例,其中使用邮递员的回复。
答案 1 :(得分:0)
问题是该API已设置CORS。尝试在AJAX请求中添加dataType: "jsonp"
作为参数。如果这不起作用,请尝试使用类似https://cors-anywhere.herokuapp.com/
答案 2 :(得分:0)
您不能直接从浏览器中查询,您必须通过代理(如Nginx或apache)进行查询。您将请求发送给代理,代理将它们传递给另一个公共API
答案 3 :(得分:0)
可能是未提供从控制器返回的类型,此错误主要发生在 返回类型未提及或保持为动态,并且返回类型对象包含任何子元素。只需提及适当的返回类型。
答案 4 :(得分:0)
错误消息中的URL:
'https://api.getaddress.io/security/ip-address-whitelist?api-key=[apikey]'
..与您提供的代码无关。
我认为您的网页中有更多使用上述URL的代码?
答案 5 :(得分:0)
您读过它的document吗?我不熟悉此getAddress.io,但似乎您必须将域和IP添加到其白名单中。