我需要执行get并从控制台
获得此错误Request header field client_id is not allowed by Access-Control-Allow-Headers in preflight response.
这就是我对标题的看法:
Access-Control-Request-Headers:accept, authorization, client_id
我想从此一次调用的请求标头中删除client_id,而不会影响全局设置。
以下是代码:
$http.get(url,{
headers: {"client_id": undefined }
})
.success(function (geoData) {
d.resolve(geoData);
})
.error(function (err, status) {
d.reject(err);
});
但它没有效果。我错过了什么?
答案 0 :(得分:1)
CORS问题引发此错误。 Read here了解有关预先请求的更多信息。您需要配置服务器以处理cos请求以允许客户标头参数,例如' client_id'。例如您的服务器中 Access-Control-Allow-Headers 的配置值:
'Access-Control-Allow-Headers' : 'client_id','Content-Type, Authorization, Content-Length,
对于根据请求逐个执行句柄标头,您需要定义条件来构建标头。它应该是:
// build your header dynamic based on condition of request
var headerConfig = null;
if ('your condition to have client_id') {
headerConfig = {"client_id": undefined }
}
else {
headerConfig = {};
}
// request with headerConfig
$http.get(url,{
headers: headerConfig
})
.success(function (geoData) {
d.resolve(geoData);
})
.error(function (err, status) {
d.reject(err);
});