Я пытаюсь интегрировать API FedEx в ReactJS или, точнее, в Приложение NextJS. До сих пор я пытался использовать fetch и XMLHttpRequest. Ниже приведен код, который я пытался использовать XHR:
let XHR = new XMLHttpRequest();
XHR.open('POST', 'https://wsbeta.fedex.com:443/web-services', true);
let soapData = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v8="http://fedex.com/ws/vacs/v8">' +
'<soapenv:Header/>' +
'<soapenv:Body>' +
'<v8:ServiceAvailabilityRequest>' +
'<v8:WebAuthenticationDetail>' +
'<v8:ParentCredential>' +
'<v8:Key>XXXXX</v8:Key>' +
'<v8:Password> XXXX</v8:Password>' +
'</v8:ParentCredential>' +
'<v8:UserCredential>' +
'<v8:Key> XXXXX</v8:Key>' +
'<v8:Password> XXXXX</v8:Password>' +
'</v8:UserCredential>' +
'</v8:WebAuthenticationDetail>' +
'<v8:ClientDetail>' +
'<v8:AccountNumber> XXXX </v8:AccountNumber>' +
'<v8:MeterNumber> XXXXX</v8:MeterNumber>' +
'<v8:Localization>' +
'<v8:LanguageCode>EN</v8:LanguageCode>' +
'<v8:LocaleCode>US</v8:LocaleCode>' +
'</v8:Localization>' +
'</v8:ClientDetail>' +
'<v8:TransactionDetail>' +
'<v8:CustomerTransactionId>Services Avaibility</v8:CustomerTransactionId>' +
'</v8:TransactionDetail>' +
'<v8:Version>' +
'<v8:ServiceId>vacs</v8:ServiceId>' +
'<v8:Major>8</v8:Major>' +
'<v8:Intermediate>0</v8:Intermediate>' +
'<v8:Minor>0</v8:Minor>' +
'</v8:Version>' +
'<v8:Origin>' +
'<v8:PostalCode>400061</v8:PostalCode>' +
'<v8:CountryCode>IN</v8:CountryCode>' +
'</v8:Origin>' +
'<v8:Destination>' +
'<v8:PostalCode>560055</v8:PostalCode>' +
'<v8:CountryCode>IN</v8:CountryCode>' +
'</v8:Destination>' +
'<v8:ShipDate>2019-05-21</v8:ShipDate>' +
'<v8:CarrierCode>FDXE</v8:CarrierCode>' +
'</v8:ServiceAvailabilityRequest>' +
'</soapenv:Body>' +
'</soapenv:Envelope>';
XHR.setRequestHeader('Content-Type', 'text/xml');
XHR.setRequestHeader('Access-Control-Allow-origin', '*')
XHR.onreadystatechange = function() {
if(XHR.readyState == 4) {
if(XHR.status == 200) {
console.log(soapData)
}
}
}
XHR.send(soapData)
Я получаю другую ошибку HTTP, например, (405, 501, 400). Наряду с этим я получаю ошибку CORS, которая выглядит следующим образом:
Доступ к XMLHttpRequest в 'https://wsbeta.fedex.com/web-services' из источника' http://localhost:3000' заблокирован политикой CORS: Ответ на предпечатный запрос не проходит проверку контроля доступа: у него нет HTTP нормальное состояние.
Для CORS я пробовал режимы cors в запросе на выборку, а с XHR я установил заголовок Access-Control-Allow-Origin как *, но я все еще получаю ту же ошибку.
Я также установил расширение из интернет-магазина Chrome, которое вчера решило проблему с CORS, но сегодня я снова столкнулся с тем же. Я уже пытался удалить и переустановить расширение.
Я также попытался добавить
Буду признателен за любую помощь.