我正在从项目中调用其他api没问题,亚马逊上还有第三方运行的另一个api,每当尝试调用它时,都会出现网络错误。
[我还尝试使用不同的请求标头设置,不同的长度(从postman获取)来调用api,也删除了Content-Length,但是它们都不起作用。
当我从邮递员那里打电话时,它没有问题,但是我不能从我的React.js PWA项目中调用它。
任何建议将不胜感激。
const requestOptions = {
method: "POST",
headers: {
"Content-Type": "application/json",
"Content-Length": "291",
Accept: "*/*"
},
body = {
sourceCode: "123",
targetCode: "567",
load: {
Endpoint: "TRANSACTION",
cmdType: "GetValue",
ReqData: {
Tag: "ABCD"
}
}
}
};
fetch(
"https://dev.ecr.amobilepayment.com:3000/api/command/queue",
requestOptions
)
.then(async (response) => {
console.log("SUCCESS");
const data = await response.json();
if (!response.ok) {
const error = (data && data.message) || response.status;
return Promise.reject(error);
}
})
.catch((error) => {
console.error("ERROR", error);
});
console.log("AFTER");
奇怪的是,控制台仅显示“ AFTER”,而没有显示“ SUCCESS”和“ ERROR”日志。我也尝试过,也可以使用catch,但是catch不会出现异常。
我认为您应该使用
throw error;
代替
return Promise.reject(error);
问题是第三方没有激活“ CORS”和预检,以便在AWS中接受跨源调用。
[尝试使用库https://www.npmjs.com/package/axios,所以您可以简化代码,我会很注意您的回答,问候。