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

时间:2018-05-16 10:32:42

标签: angularjs rest apigee

我正在尝试从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”}}}

2 个答案:

答案 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);