我正在尝试使用Ajax调用Alchemy REST API,但是我遇到了下面提到的注射器错误。以下是我的HTML文件中的代码。寻找解决错误的建议。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" ></meta>
<script language="JavaScript" type="text/javascript" src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
</head>
<body>

Alchemy trial
<span id="yammer-login"></span>
<script>
    $.ajax({
        url: 'http://access.alchemyapi.com/calls/url/URLGetRankedKeywords',
        type: 'GET',
        data: 'url=http://yurishelke.weebly.com&apikey=apikey&maxRetrieve=1', // or $('#myform').serializeArray()
        success: function(keyword) {
            //document.getElementById('yammer-login').innerHTML = keyword;
            console.dir(keyword);
            alert('PUT completed');
        }

    });
</script>
</body>
</html>


我在控制台中收到以下错误:-

[21:39:07.317] Error: [$injector:unpr] http://errors.angularjs.org/undefined/$injector/unpr?p0=AngularIssuesProvider%20%3C-%20AngularIssues
L/<@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:6
Xb/l.$injector<@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:32
c@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:29
Xb/r.$injector<@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:32
c@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:29
d@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:30
Xb/f/<.instantiate@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0

最佳答案

AlchemyAPI可能会返回多个CORS标头,如下所示:

Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: *


在浏览器中实际上是这样解释的:

Access-Control-Allow-Origin: *, *


根据标准,这是无效的,并且浏览器无法正确解释。

除此之外,您可能不应该直接使用AlchemyAPI。相反,您应该使用Web服务器代理API调用,并使用AJAX来访问该服务器。通过将AJAX调用传递到API客户端,您会将密钥提供给使用它的任何人或设备,现在,您已经将其提供给在Stack Exchange上查看此问题的任何人。

10-06 15:35