我正在尝试从Angular服务向Apigee API发出请求。它适用于Postman,但在从Angular代码向API发出请求时,我收到了401
未经授权的错误。
这是我正在尝试的Angular代码:
$http({
url: "https://xxx_test.com/data?sdate=date",
method: "GET",
headers: {
'apikey': 'XXXXXXXXXXXXXXXXX'
},
})
这是我得到的回应:
{“fault”:{“faultstring”:“无法解析API密钥变量request.header.apikey”,“detail”:{“errorcode”:“steps.oauth.v2.FailedToResolveAPIKey”}}}
答案 0 :(得分:1)
服务器端配置存在问题。我们正在为我们的API使用apigee,因此它需要一些CORS配置。
以下是设置:
<pre><code>((?!<\/code>).+)<\/code><\/pre>
在条件流中添加RaisFault策略。
<FaultResponse>
<Set>
<StatusCode>200</StatusCode>
<ReasonPhrase>CORS OK</ReasonPhrase>
<Headers>
<Header name="Access-Control-Allow-Methods">GET, POST, PUT, DELETE, PATCH</Header>
<Header name="Access-Control-Allow-Origin">*</Header>
<Header name="Access-Control-Allow-Headers">authorization,content-type,api-key</Header>
</Headers>
<Payload/>
<!-- Remove default fault content. -->
</Set>
</FaultResponse>
答案 1 :(得分:0)
尝试这种方式。也设置接受标题。
var config = {headers: {
'apikey': 'XXXXXXXXX',
'Accept': 'application/json;odata=verbose',
}
};
$http.get("https://xxx_test.com/data?sdate=date", config);