连接到Amazon SP-API时出现Cors飞行前错误
我正在尝试连接亚马逊的销售合作伙伴API以请求和检索报告。按照他们的指导,我创建并配置了IAM策略,注册并自行授权了我的应用程序,并且能够使用我的客户端信息和刷新令牌检索访问代码 然后,我使用CryptoJS成功地散列了我的请求,并能够生成aws4签名 但是,当我使用fetch()向端点发送“post”请求时https://sellingpartnerapi-eu.amazon.com/reports/2020-09-04/reports我收到cors错误: 对飞行前请求的响应未通过访问控制检查:否 “Access Control Allow Origin”标头出现在请求的服务器上 资源。如果不透明的响应满足您的需要,请设置请求的 模式设置为“无cors”,以获取禁用cors的资源 如果我在请求中包括'mode':'no cors',则不会在头中发送'x-amz-access-token' 我无法理解fetch()请求用于检索访问代码的原因:连接到Amazon SP-API时出现Cors飞行前错误,cors,amazon,fetch-api,amazon-mws,selling-partner-api,Cors,Amazon,Fetch Api,Amazon Mws,Selling Partner Api,我正在尝试连接亚马逊的销售合作伙伴API以请求和检索报告。按照他们的指导,我创建并配置了IAM策略,注册并自行授权了我的应用程序,并且能够使用我的客户端信息和刷新令牌检索访问代码 然后,我使用CryptoJS成功地散列了我的请求,并能够生成aws4签名 但是,当我使用fetch()向端点发送“post”请求时https://sellingpartnerapi-eu.amazon.com/reports/2020-09-04/reports我收到cors错误: 对飞行前请求的响应未通过访问控制检查
const getAuth = () => {
fetch('https://api.amazon.com/auth/o2/token', {
method: 'post',
headers: {
'Content-type': 'application/x-www-form-urlencoded; charset=UTF-8'
},
body: `grant_type=refresh_token&refresh_token=${refreshToken}&client_id=${clientId}&client_secret=${clientSecret}`
})
.then...
…但不创建报告
const createReport = (accessToken, signature) => {
fetch('https://sellingpartnerapi-eu.amazon.com/reports/2020-09-04/reports?reportType=GET_MERCHANT_LISTINGS_DATA_LITER&MarketplaceId=A1F83G8C2ARO7P', {
method: 'post',
headers: {
'Authorization': `AWS4-HMAC-SHA256 Credential=${accessKey}/${credentialScope}, SignedHeaders=host;x-amz-access-token;x-amz-date;user-agent, Signature=${signature}`,
'host': 'sellingpartnerapi-eu.amazon.com',
'x-amz-access-token': accessToken,
'x-amz-date': amzDate,
'user-agent': 'Stock Levels/1.0 (Language=Javascript;)'
}
}).then...
SP-API文档还要求在请求中发送“主机”和“用户代理”头,但我的理解是这两种头都不允许
这是JavaScript中的一个限制吗?我是否应该寻找另一种语言来发送这些请求
对于这个新手开发者的任何帮助都将不胜感激
谢谢
丹
[连接到销售合作伙伴API]
[要求报告]
[创建报告]