99%的ajax调用需要特定的"X-API-TOKEN"来验证我的Rails REST API并与之通信。但我也在调用一个第三方API,我不断收到一个错误,说"请求头字段X-API-TOKEN不被Access-Control-Allow-Headers允许。"
如果我在调用前删除标题,一切都会很好,解决办法是删除标题,然后在调用后重新添加,但有比这更简单的方法吗:
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
像这样将所需的一个或多个headers设置为undefined,这样就不会影响全局设置。
$http( {
method: 'GET',
url: 'someurl',
headers: {
'X-API-TOKEN': undefined
}
}
)
$http
服务配置对象允许您覆盖特定请求的http标头send。请参阅配置属性headers
。
这可以采用一个标头列表,也可以使用一个返回标头列表的函数。因此,对于非auth标头请求,复制默认标头,删除不需要的标头,然后发出请求。您可以将其存储以备日后使用。
参见$http
文档