GetAddress.io和“禁止访问控制允许原点”错误

时间:2018-06-29 12:31:51

标签: javascript jquery ajax

我正在尝试使用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,因此我无法修改其代码以允许我访问。这是一项付费服务​​,因此我应该能够查询它并取回我的数据。为什么会出现此错误?

6 个答案:

答案 0 :(得分:2)

您需要将域(如果要从客户端访问API)或服务器IP(如果使用后端)列入白名单。

https://getaddress.io/Documentation#domain-whitelist

只需使用admin-key(NOT API KEY),params(NOT IN BODY)和您的域名进行简单的发布请求,然后将Content-Type设置为application / json。

这是一个示例示例,其中使用邮递员的回复。

postman example request

答案 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添加到其白名单中。

结帐Domain WhitelistIP Address Whitelist