我正在尝试使用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上查看此问题的任何人。