获取 Apigee 请求的错误 401 响应 API

Getting error 401 response for requests to an Apigee API

我正在尝试从 Angular 服务向 Apigee API 发出请求。它适用于 Postman,但是当我从我的 Angular 代码向 API 发出请求时,我收到 401 未经授权的错误。

这是我正在尝试的 Angular 代码:

$http({
       url: "https://xxx_test.com/data?sdate=date",
       method: "GET",
       headers: {
               'apikey': 'XXXXXXXXXXXXXXXXX'                             
             },
     })

这是我得到的回复:

{"fault":{"faultstring":"Failed to resolve API Key variable request.header.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}

试试这个 way.Also 设置接受 header。

var config = {headers:  {
        'apikey': 'XXXXXXXXX',
        'Accept': 'application/json;odata=verbose',
    }
};

$http.get("https://xxx_test.com/data?sdate=date", config);

问题出在服务器端配置上。我们正在为 API 使用 apigee,因此它需要一些 CORS 配置。

这里是设置:

<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>

在有条件的流程中添加 RaisFault 政策。

<Condition>request.verb == "OPTIONS" AND request.header.origin != null AND request.header.Access-Control-Request-Method != null</Condition>