CORS 策略:Access-Control-Allow-Headers 不允许请求 header 字段令牌
CORS policy: Request header field token is not allowed by Access-Control-Allow-Headers
我正在向 api 发出 GET 类型请求,请求两次身份验证 headers,其中一个称为令牌,另一个称为身份验证。
我正在传递两个必需的参数,如下面的打印屏幕所示:
在 return 中,我得到错误:
Access to XMLHttpRequest at 'https://pay.apiname.com.br/v1/sellers/d.....2/payments/list' from origin 'http://10.0.0.150:3006' has been blocked by CORS policy: Request header field token is not allowed by Access-Control-Allow-Headers in preflight response.
我正在使用 axios 发出请求。在下面的文件中,您可以配置该特定中间件的请求。我运行这个请求甚至在必要的时候在redux动作中。
paymentApi: {
client: axios.create({
baseURL: process.env.API,
responseType: 'json',
}),
options: {
returnRejectedPromiseOnError: true,
interceptors: {
request: [
({ getState }, config) => {
// here I look for the user information from the state, where it contains the authorization and token needed for the header.
const { auth } = getState().get('login').toJS();
return {
...config,
headers: {
...(config.headers || {}),
token: auth.user.token_parcela
? `${auth.user.token_parcela}`
: undefined,
Authorization: auth.user.api_key_parcela
? `${auth.user.api_key_parcela}`
: undefined,
Accept: 'application/json',
'Content-Type': 'application/json',
},
};
},
],
response: [
{
success: (store, response) => response,
error: (_store, error) => {
console.error(error);
return Promise.reject(error);
},
},
],
},
},
},
奇怪的是,如果您尝试使用邮递员发出此请求,我可以毫无问题地完成,请参见下面的打印屏幕。
该问题与您的代码无关,API hosted/built 需要允许 CORS 来源,并且您必须指定调用此代码的网站 API作为原点。
在此处阅读有关 CORS 的更多信息 - CORS
它在 Postman 中也有效,因为 API 是直接调用的,而不是从任何 source/origin/website 调用的,这与您的代码不同。
我正在向 api 发出 GET 类型请求,请求两次身份验证 headers,其中一个称为令牌,另一个称为身份验证。
我正在传递两个必需的参数,如下面的打印屏幕所示:
在 return 中,我得到错误:
Access to XMLHttpRequest at 'https://pay.apiname.com.br/v1/sellers/d.....2/payments/list' from origin 'http://10.0.0.150:3006' has been blocked by CORS policy: Request header field token is not allowed by Access-Control-Allow-Headers in preflight response.
我正在使用 axios 发出请求。在下面的文件中,您可以配置该特定中间件的请求。我运行这个请求甚至在必要的时候在redux动作中。
paymentApi: {
client: axios.create({
baseURL: process.env.API,
responseType: 'json',
}),
options: {
returnRejectedPromiseOnError: true,
interceptors: {
request: [
({ getState }, config) => {
// here I look for the user information from the state, where it contains the authorization and token needed for the header.
const { auth } = getState().get('login').toJS();
return {
...config,
headers: {
...(config.headers || {}),
token: auth.user.token_parcela
? `${auth.user.token_parcela}`
: undefined,
Authorization: auth.user.api_key_parcela
? `${auth.user.api_key_parcela}`
: undefined,
Accept: 'application/json',
'Content-Type': 'application/json',
},
};
},
],
response: [
{
success: (store, response) => response,
error: (_store, error) => {
console.error(error);
return Promise.reject(error);
},
},
],
},
},
},
奇怪的是,如果您尝试使用邮递员发出此请求,我可以毫无问题地完成,请参见下面的打印屏幕。
该问题与您的代码无关,API hosted/built 需要允许 CORS 来源,并且您必须指定调用此代码的网站 API作为原点。
在此处阅读有关 CORS 的更多信息 - CORS
它在 Postman 中也有效,因为 API 是直接调用的,而不是从任何 source/origin/website 调用的,这与您的代码不同。