У меня есть приложение React, содержащее метод JavaScript, который отправляет данные в метод сервера. Этот метод прекрасно работает в любом браузере под солнцем ... кроме IE11 (шокирующее, я знаю). К сожалению, для этого проекта требуется поддержка IE11.
Журналы IIS показывают 400 (неправильный запрос) кодов состояния HTTP.
Я решил не использовать fetch () из-за его несовместимости с IE11, и я бы предпочел не прибегать к внешним библиотекам, таким как axios или jQuery, для одного метода для одного браузера.
Я попытался использовать несколько значений заголовка Content-Type
(application / json и x-url-form-encoded), а также пробовал различные другие заголовки, которые могут или не могут быть связаны (Pragma, CORS - даже если это не перекрестно Происхождение, Cache-Control и др.).
handleSubmit(event) {
const booking = {
'key1': 'value1',
'key2': 'value2',
'key3': 'value3',
};
const xhr = new XMLHttpRequest();
const url = "api/Booking/AddBooking";
xhr.open("POST", url);
xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xhr.send(JSON.stringify(booking));
xhr.onreadystatechange = () => {
if (xhr.readyState === 4 && xhr.status === 200) {
var response = JSON.parse(xhr.responseText);
this.setState({
bookingResponse: response,
showModal: true
});
}
}
event.preventDefault();
}
Я знаю, что внешние библиотеки работают с IE11, поэтому должен быть способ обойти это с помощью ванильного JavaScript, я просто не могу найти, что это такое. Есть идеи?