13

我 99% 的 ajax 调用需要一个特定的“X-API-TOKEN”来验证我的 Rails REST API 并与之通信。但我也在调用一个第三方 API,并且一直收到错误消息,提示“Access-Control-Allow-Headers 不允许请求标头字段 X-API-TOKEN”。

如果我在通话之前删除标题,一切正常,解决方法是删除然后在通话后重新添加,但有没有比这更简单的方法:

    apiToken = $http.defaults.headers.common["X-API-TOKEN"]
    delete $http.defaults.headers.common["X-API-TOKEN"]

    $http(
      method: "GET"
      url: 'http://...}}'
    ).success((data, status, headers, config) ->
    ).error (data, status, headers, config) ->

    $http.defaults.headers.common["X-API-TOKEN"] = apiToken
4

2 回答 2

23

像这样将期望的标头/标头设置为未定义,则不会影响全局设置。

$http( {
         method: 'GET',
         url: 'someurl',
         headers: {
           'X-API-TOKEN': undefined
         }
       }
     )
于 2015-02-24T18:53:26.077 回答
3

$http服务配置对象允许您覆盖特定请求的 http 标头发送。请参阅配置属性headers

这可以采用标题列表或返回标题列表的函数。因此,对于非身份验证标头请求,请复制默认标头删除您不需要的标头,然后发出请求。您可以将其存储起来以备后用。

查看$http 文档

于 2013-08-23T09:21:45.470 回答